summaryrefslogtreecommitdiffstats
path: root/ui/ncurses/nc-cui.h
diff options
context:
space:
mode:
authorSamuel Mendoza-Jonas <sam@mendozajonas.com>2017-07-24 15:58:50 +1000
committerSamuel Mendoza-Jonas <sam@mendozajonas.com>2017-08-15 13:38:17 +1000
commit5b3dd56d982629349e612b9e984e65dec09b438f (patch)
tree1a89bd6376fc58e45691a3c8b72b91c275602f7b /ui/ncurses/nc-cui.h
parentd90efe9e2bbfb18ee05ec2032b5723dbfa902d82 (diff)
downloadtalos-petitboot-5b3dd56d982629349e612b9e984e65dec09b438f.tar.gz
talos-petitboot-5b3dd56d982629349e612b9e984e65dec09b438f.zip
ui/ncurses: Add plugin menu and nc-plugin screen
Add a second pmenu accessible via the main menu which displays uninstalled and installed pb-plugins. Uninstalled options can be selected to trigger pb-plugin to install them, after which they are updated and marked as installed in the menu. Installed plugins can be investigated by entering the new plugin screen, where plugin metadata and executables are displayed. Executables can be run from this screen via cui_run_cmd(). Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
Diffstat (limited to 'ui/ncurses/nc-cui.h')
-rw-r--r--ui/ncurses/nc-cui.h13
1 files changed, 11 insertions, 2 deletions
diff --git a/ui/ncurses/nc-cui.h b/ui/ncurses/nc-cui.h
index d8a5f8b..b310f4a 100644
--- a/ui/ncurses/nc-cui.h
+++ b/ui/ncurses/nc-cui.h
@@ -26,8 +26,11 @@
#include "nc-helpscreen.h"
struct cui_opt_data {
- const char *name;
- struct pb_boot_data *bd;
+ char *name;
+ union {
+ struct pb_boot_data *bd;
+ struct pb_plugin_data *pd;
+ };
/* optional data */
const struct device *dev;
@@ -53,6 +56,8 @@ struct cui {
sig_atomic_t resize;
struct nc_scr *current;
struct pmenu *main;
+ struct pmenu *plugin_menu;
+ unsigned int n_plugins;
struct waitset *waitset;
struct discover_client *client;
struct system_info *sysinfo;
@@ -61,6 +66,7 @@ struct cui {
struct config *config;
struct config_screen *config_screen;
struct add_url_screen *add_url_screen;
+ struct plugin_screen *plugin_screen;
struct boot_editor *boot_editor;
struct lang_screen *lang_screen;
struct help_screen *help_screen;
@@ -88,8 +94,11 @@ void cui_show_help(struct cui *cui, const char *title,
void cui_show_subset(struct cui *cui, const char *title,
void *arg);
void cui_show_add_url(struct cui *cui);
+void cui_show_plugin(struct pmenu_item *item);
+void cui_show_plugin_menu(struct cui *cui);
int cui_send_config(struct cui *cui, struct config *config);
int cui_send_url(struct cui *cui, char *url);
+int cui_send_plugin_install(struct cui *cui, char *file);
void cui_send_reinit(struct cui *cui);
/* convenience routines */
OpenPOWER on IntegriCloud