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 }