X-Git-Url: http://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=ui%2Fncurses%2Fnc-cui.c;h=09e7a57fafe9454eb11cb24fa90fee11234718d1;hp=aed5ff7befdcbdec665b3cfea0f344ea00321e94;hb=604a1ccf072f9f33326fb6dc919c1b6233d40866;hpb=ae0ba68f475ae5b057aad6538765bc8702134b9a diff --git a/ui/ncurses/nc-cui.c b/ui/ncurses/nc-cui.c index aed5ff7..09e7a57 100644 --- a/ui/ncurses/nc-cui.c +++ b/ui/ncurses/nc-cui.c @@ -111,7 +111,7 @@ int cui_run_cmd(struct pmenu_item *item) def_prog_mode(); - result = pb_run_cmd(cmd_argv); + result = pb_run_cmd(cmd_argv, 1); reset_prog_mode(); redrawwin(cui->current->main_ncw); @@ -534,7 +534,7 @@ static struct discover_client_ops cui_client_ops = { struct cui *cui_init(void* platform_info, int (*on_kexec)(struct cui *, struct cui_opt_data *), - int (*js_map)(const struct js_event *e)) + int (*js_map)(const struct js_event *e), int start_deamon) { struct cui *cui; struct discover_client *client; @@ -555,6 +555,7 @@ struct cui *cui_init(void* platform_info, /* Loop here for scripts that just started the server. */ +start_deamon: for (i = 10; i; i--) { client = discover_client_init(&cui_client_ops, cui); if (client) @@ -563,6 +564,24 @@ struct cui *cui_init(void* platform_info, sleep(1); } + if (!client && start_deamon) { + int result; + + start_deamon = 0; + + result = pb_start_daemon(); + + if (!result) + goto start_deamon; + + pb_log("%s: discover_client_init failed.\n", __func__); + fprintf(stderr, "%s: error: discover_client_init failed.\n", + __func__); + fprintf(stderr, "could not start pb-discover, the petitboot " + "daemon.\n"); + goto fail_client_init; + } + if (!client) { pb_log("%s: discover_client_init failed.\n", __func__); fprintf(stderr, "%s: error: discover_client_init failed.\n",