#include "pb-protocol/pb-protocol.h"
#include "talloc/talloc.h"
#include "waiter/waiter.h"
+#include "process/process.h"
#include "ui/common/discover-client.h"
#include "nc-cui.h"
{
int result;
struct cui *cui = cui_from_item(item);
- const char *const *cmd_argv = item->data;
+ const char **cmd_argv = item->data;
nc_scr_status_printf(cui->current, "Running %s...", cmd_argv[0]);
def_prog_mode();
- result = pb_run_cmd(cmd_argv, 1, 0);
+ result = process_run_simple_argv(item, cmd_argv);
reset_prog_mode();
redrawwin(cui->current->main_ncw);
}
+static void cui_update_mm_title(struct cui *cui)
+{
+ struct nc_frame *frame = &cui->main->scr.frame;
+
+ talloc_free(frame->rtitle);
+
+ frame->rtitle = talloc_strdup(cui->main, cui->sysinfo->type);
+ if (cui->sysinfo->identifier)
+ frame->rtitle = talloc_asprintf_append(frame->rtitle,
+ " %s", cui->sysinfo->identifier);
+
+ if (cui->current == &cui->main->scr)
+ cui->current->post(cui->current);
+}
+
+static void cui_update_sysinfo(struct system_info *sysinfo, void *arg)
+{
+ struct cui *cui = cui_from_arg(arg);
+ cui->sysinfo = talloc_steal(cui, sysinfo);
+ cui_update_mm_title(cui);
+}
+
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,
+ .update_sysinfo = cui_update_sysinfo,
};
/**
cui->platform_info = platform_info;
cui->waitset = waitset_create(cui);
+ process_init(cui, cui->waitset, false);
+
setlocale(LC_ALL, "");
/* Loop here for scripts that just started the server. */
start_deamon = 0;
- result = pb_start_daemon();
+ result = pb_start_daemon(cui);
if (!result)
goto retry_start;
while (1) {
int result = waiter_poll(cui->waitset);
- if (result < 0 && errno != EINTR) {
+ if (result < 0) {
pb_log("%s: poll: %s\n", __func__, strerror(errno));
break;
}