ui/ncurses: Always provide a key definition for backtab
[petitboot] / ui / ncurses / generic-main.c
index ad4c0cf9b8f3a1067591482912e648cd4c94d623..0d0a38af4dc6d3eeefc03209eb31bbaee5e0f734 100644 (file)
@@ -49,7 +49,7 @@ static void print_usage(void)
        print_version();
        printf(
 "Usage: petitboot-nc [-h, --help] [-l, --log log-file]\n"
-"                    [-s, --start-daemon] [-V, --version]\n");
+"                    [-s, --start-daemon] [-v, --verbose] [-V, --version]\n");
 }
 
 /**
@@ -66,6 +66,7 @@ struct opts {
        enum opt_value show_help;
        const char *log_file;
        enum opt_value start_daemon;
+       enum opt_value verbose;
        enum opt_value show_version;
 };
 
@@ -79,10 +80,11 @@ static int opts_parse(struct opts *opts, int argc, char *argv[])
                {"help",         no_argument,       NULL, 'h'},
                {"log",          required_argument, NULL, 'l'},
                {"start-daemon", no_argument,       NULL, 's'},
+               {"verbose",      no_argument,       NULL, 'v'},
                {"version",      no_argument,       NULL, 'V'},
                { NULL,          0,                 NULL, 0},
        };
-       static const char short_options[] = "dhl:sV";
+       static const char short_options[] = "dhl:svV";
        static const struct opts default_values = { 0 };
 
        *opts = default_values;
@@ -104,6 +106,9 @@ static int opts_parse(struct opts *opts, int argc, char *argv[])
                case 's':
                        opts->start_daemon = opt_yes;
                        break;
+               case 'v':
+                       opts->verbose = opt_yes;
+                       break;
                case 'V':
                        opts->show_version = opt_yes;
                        break;
@@ -196,16 +201,25 @@ static struct pmenu *pb_mm_init(struct pb_cui *pb_cui)
                "Enter=accept, e=edit, n=new, x=exit, h=help");
        m->scr.frame.status = talloc_strdup(m, "Welcome to Petitboot");
 
-       i = pmenu_item_init(m, 0, " ");
+       i = pmenu_item_create(m, " ");
        item_opts_off(i->nci, O_SELECTABLE);
-       i = pmenu_item_init(m, 1, "System information");
+       pmenu_item_insert(m, i, 0);
+
+       i = pmenu_item_create(m, "System information");
        i->on_execute = pmenu_sysinfo;
-       i = pmenu_item_init(m, 2, "System configuration");
+       pmenu_item_insert(m, i, 1);
+
+       i = pmenu_item_create(m, "System configuration");
        i->on_execute = pmenu_config;
-       i = pmenu_item_init(m, 3, "Rescan devices");
+       pmenu_item_insert(m, i, 2);
+
+       i = pmenu_item_create(m, "Rescan devices");
        i->on_execute = pmenu_reinit;
-       i = pmenu_item_init(m, 4, "Exit to shell");
+       pmenu_item_insert(m, i, 3);
+
+       i = pmenu_item_create(m, "Exit to shell");
        i->on_execute = pmenu_exit_cb;
+       pmenu_item_insert(m, i, 4);
 
        result = pmenu_setup(m);
 
@@ -297,6 +311,9 @@ int main(int argc, char *argv[])
 
        pb_log_init(log);
 
+       if (opts.verbose)
+               pb_log_set_debug(true);
+
        pb_log("--- petitboot-nc ---\n");
 
        sa.sa_handler = sig_handler;