Mercurial > sci
comparison 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 |
comparison
equal
deleted
inserted
replaced
8:ec800a5fb7e3 | 9:3ef8128e244f |
---|---|
22 { | 22 { |
23 fprintf(stderr, "usage: %s job-add project tag\n", getprogname()); | 23 fprintf(stderr, "usage: %s job-add project tag\n", getprogname()); |
24 fprintf(stderr, " %s job-todo worker\n", getprogname()); | 24 fprintf(stderr, " %s job-todo worker\n", getprogname()); |
25 fprintf(stderr, " %s jobresult-add id worker exitcode console\n", getprogname()); | 25 fprintf(stderr, " %s jobresult-add id worker exitcode console\n", getprogname()); |
26 fprintf(stderr, " %s project-add name desc url script\n", getprogname()); | 26 fprintf(stderr, " %s project-add name desc url script\n", getprogname()); |
27 fprintf(stderr, " %s project-update name key value\n", getprogname()); | |
27 fprintf(stderr, " %s project-list\n", getprogname()); | 28 fprintf(stderr, " %s project-list\n", getprogname()); |
28 fprintf(stderr, " %s worker-add name desc\n", getprogname()); | 29 fprintf(stderr, " %s worker-add name desc\n", getprogname()); |
29 fprintf(stderr, " %s worker-list\n", getprogname()); | 30 fprintf(stderr, " %s worker-list\n", getprogname()); |
30 exit(0); | 31 exit(0); |
31 } | 32 } |
171 res = req_project_add(&pc); | 172 res = req_project_add(&pc); |
172 | 173 |
173 free(script); | 174 free(script); |
174 | 175 |
175 return res; | 176 return res; |
177 } | |
178 | |
179 static struct req | |
180 cmd_project_update(int argc, char **argv) | |
181 { | |
182 struct project pc; | |
183 struct req rget, rsend; | |
184 char *script = NULL; | |
185 | |
186 if (argc < 3) | |
187 help(); | |
188 | |
189 if ((rget = req_project_find(&pc, argv[0])).status) | |
190 return rget; | |
191 | |
192 if (strcmp(argv[1], "name") == 0) | |
193 pc.name = argv[2]; | |
194 else if (strcmp(argv[1], "desc") == 0) | |
195 pc.desc = argv[2]; | |
196 else if (strcmp(argv[1], "url") == 0) | |
197 pc.url = argv[2]; | |
198 else if (strcmp(argv[1], "script") == 0) | |
199 pc.script = script = readfile(argv[2]); | |
200 | |
201 rsend = req_project_update(&pc); | |
202 | |
203 req_finish(&rget); | |
204 free(script); | |
205 | |
206 return rsend; | |
176 } | 207 } |
177 | 208 |
178 static struct req | 209 static struct req |
179 cmd_project_find(int argc, char **argv) | 210 cmd_project_find(int argc, char **argv) |
180 { | 211 { |
269 { "job-todo", cmd_job_todo }, | 300 { "job-todo", cmd_job_todo }, |
270 { "jobresult-add", cmd_jobresult_add }, | 301 { "jobresult-add", cmd_jobresult_add }, |
271 { "project-add", cmd_project_add }, | 302 { "project-add", cmd_project_add }, |
272 { "project-find", cmd_project_find }, | 303 { "project-find", cmd_project_find }, |
273 { "project-list", cmd_project_list }, | 304 { "project-list", cmd_project_list }, |
305 { "project-update", cmd_project_update }, | |
274 { "worker-add", cmd_worker_add }, | 306 { "worker-add", cmd_worker_add }, |
275 { "worker-list", cmd_worker_list }, | 307 { "worker-list", cmd_worker_list }, |
276 { NULL, NULL } | 308 { NULL, NULL } |
277 }; | 309 }; |
278 | 310 |
306 | 338 |
307 if (strcmp(commands[i].name, argv[0]) == 0) { | 339 if (strcmp(commands[i].name, argv[0]) == 0) { |
308 res = commands[i].exec(--argc, ++argv); | 340 res = commands[i].exec(--argc, ++argv); |
309 cmdfound = 1; | 341 cmdfound = 1; |
310 | 342 |
311 #if 0 | |
312 if (res.status) | 343 if (res.status) |
313 warnx("%s", res.msg); | 344 warnx("%s", json_string_value(json_object_get(res.msg, "error"))); |
314 #endif | |
315 | 345 |
316 req_finish(&res); | 346 req_finish(&res); |
317 break; | 347 break; |
318 } | 348 } |
319 } | 349 } |