Mercurial > sci
diff scictl.c @ 9:3ef8128e244f
sci: add project-update command
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 23 Jun 2021 14:05:36 +0200 |
parents | 9c4fea43803c |
children | be3ec0e6bb8f |
line wrap: on
line diff
--- a/scictl.c Wed Jun 23 11:45:07 2021 +0200 +++ b/scictl.c Wed Jun 23 14:05:36 2021 +0200 @@ -24,6 +24,7 @@ fprintf(stderr, " %s job-todo worker\n", getprogname()); fprintf(stderr, " %s jobresult-add id worker exitcode console\n", getprogname()); fprintf(stderr, " %s project-add name desc url script\n", getprogname()); + fprintf(stderr, " %s project-update name key value\n", getprogname()); fprintf(stderr, " %s project-list\n", getprogname()); fprintf(stderr, " %s worker-add name desc\n", getprogname()); fprintf(stderr, " %s worker-list\n", getprogname()); @@ -176,6 +177,36 @@ } static struct req +cmd_project_update(int argc, char **argv) +{ + struct project pc; + struct req rget, rsend; + char *script = NULL; + + if (argc < 3) + help(); + + if ((rget = req_project_find(&pc, argv[0])).status) + return rget; + + if (strcmp(argv[1], "name") == 0) + pc.name = argv[2]; + else if (strcmp(argv[1], "desc") == 0) + pc.desc = argv[2]; + else if (strcmp(argv[1], "url") == 0) + pc.url = argv[2]; + else if (strcmp(argv[1], "script") == 0) + pc.script = script = readfile(argv[2]); + + rsend = req_project_update(&pc); + + req_finish(&rget); + free(script); + + return rsend; +} + +static struct req cmd_project_find(int argc, char **argv) { struct project project = {0}; @@ -271,6 +302,7 @@ { "project-add", cmd_project_add }, { "project-find", cmd_project_find }, { "project-list", cmd_project_list }, + { "project-update", cmd_project_update }, { "worker-add", cmd_worker_add }, { "worker-list", cmd_worker_list }, { NULL, NULL } @@ -308,10 +340,8 @@ res = commands[i].exec(--argc, ++argv); cmdfound = 1; -#if 0 if (res.status) - warnx("%s", res.msg); -#endif + warnx("%s", json_string_value(json_object_get(res.msg, "error"))); req_finish(&res); break;