cui->resize = 1;
}
-/**
- * cui_make_item_name - Format the menu item name srting.
- *
- * Returns a talloc string.
- */
-
-static char *cui_make_item_name(struct pmenu_item *i, struct cui_opt_data *cod)
-{
- char *name;
-
- assert(cod->name);
- assert(cod->bd);
-
- name = talloc_asprintf(i, "%s:", cod->name);
-
- if (cod->bd->image)
- name = talloc_asprintf_append(name, " %s", cod->bd->image);
-
- if (cod->bd->initrd)
- name = talloc_asprintf_append(name, " initrd=%s",
- cod->bd->initrd);
-
- if (cod->bd->args)
- name = talloc_asprintf_append(name, " %s", cod->bd->args);
-
- DBGS("@%s@\n", name);
- return name;
-}
-
/**
* cui_on_exit - A generic main menu ESC callback.
*/
assert(cui->current == &cui->main->scr);
pb_log("%s: %s\n", __func__, cod->name);
+ if (!cod->opt) {
+ pb_log("%s: missing opt?\n", __func__);
+ return -1;
+ }
+
nc_scr_status_printf(cui->current, "Booting %s...", cod->name);
def_prog_mode();
reset_prog_mode();
redrawwin(cui->current->main_ncw);
- if (!result) {
- clear();
- mvaddstr(1, 0, "system is going down now...");
- refresh();
- } else {
+ if (result) {
nc_scr_status_printf(cui->current,
"Failed: boot %s", cod->bd->image);
}
if (boot_editor_result == boot_editor_update) {
struct pmenu_item *i = pmenu_find_selected(cui->main);
struct cui_opt_data *cod = cod_from_item(i);
- char *name;
assert(bd);
talloc_free(cod->bd);
cod->bd = bd;
- name = cui_make_item_name(i, cod);
- pmenu_item_replace(i, name);
+ pmenu_item_replace(i, cod->name);
/* FIXME: need to make item visible somehow */
set_current_item(cui->main->ncm, i->nci);
unsigned int insert_pt;
struct pmenu_item *i;
ITEM *selected;
- char *name;
int result;
pb_log("%s: %p %s\n", __func__, opt, opt->id);
cod->bd->initrd = talloc_strdup(cod->bd, opt->initrd_file);
cod->bd->args = talloc_strdup(cod->bd, opt->boot_args);
- name = cui_make_item_name(i, cod);
- pmenu_item_setup(cui->main, i, insert_pt, name);
+ pmenu_item_setup(cui->main, i, insert_pt, cod->name);
pb_log("%s: adding opt '%s'\n", __func__, cod->name);
pb_log(" image '%s'\n", cod->bd->image);
cui->current->post(cui->current);
}
+static void cui_update_status(struct boot_status *status, void *arg)
+{
+ struct cui *cui = cui_from_arg(arg);
+
+ nc_scr_status_printf(cui->current,
+ "%s: %s",
+ status->type == BOOT_STATUS_ERROR ? "Error" : "Info",
+ status->message);
+
+}
+
static struct discover_client_ops cui_client_ops = {
.device_add = NULL,
.boot_option_add = cui_boot_option_add,
.device_remove = cui_device_remove,
+ .update_status = cui_update_status,
};
/**