Mercurial > sci
comparison scictl/scictl.c @ 50:b474f0985e39
scictl: add API key support
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 17 Aug 2022 09:11:58 +0200 |
parents | 081e1c258e64 |
children | 95bc6b4ec753 |
comparison
equal
deleted
inserted
replaced
49:9d8df0c1db63 | 50:b474f0985e39 |
---|---|
320 | 320 |
321 int | 321 int |
322 main(int argc, char **argv) | 322 main(int argc, char **argv) |
323 { | 323 { |
324 int ch; | 324 int ch; |
325 const char *env; | |
325 | 326 |
326 opterr = 0; | 327 opterr = 0; |
327 setenv("POSIXLY_CORRECT", "1", 1); | 328 setenv("POSIXLY_CORRECT", "1", 1); |
328 | 329 |
329 while ((ch = getopt(argc, argv, "u:")) != -1) { | 330 /* Environment first, options after. */ |
331 if ((env = getenv("SCI_API_URL"))) | |
332 util_strlcpy(apiconf.baseurl, env, sizeof (apiconf.baseurl)); | |
333 if ((env = getenv("SCI_API_KEY"))) | |
334 util_strlcpy(apiconf.key, env, sizeof (apiconf.key)); | |
335 | |
336 while ((ch = getopt(argc, argv, "k:u:")) != -1) { | |
330 switch (ch) { | 337 switch (ch) { |
338 case 'k': | |
339 util_strlcpy(apiconf.key, optarg, sizeof (apiconf.key)); | |
340 break; | |
331 case 'u': | 341 case 'u': |
332 util_strlcpy(apiconf.baseurl, optarg, sizeof (apiconf.baseurl)); | 342 util_strlcpy(apiconf.baseurl, optarg, sizeof (apiconf.baseurl)); |
333 break; | 343 break; |
334 case '?': | 344 case '?': |
335 util_die("abort: invalid option: %c\n", ch); | 345 util_die("abort: invalid option: %c\n", ch); |
349 | 359 |
350 if (argc < 1) | 360 if (argc < 1) |
351 usage(); | 361 usage(); |
352 if (strcmp(argv[0], "help") == 0) | 362 if (strcmp(argv[0], "help") == 0) |
353 help(); | 363 help(); |
364 | |
365 /* At this step, every command requires an API key. */ | |
366 if (strlen(apiconf.key) == 0) | |
367 util_die("abort: no API key defined\n"); | |
354 | 368 |
355 for (size_t i = 0; commands[i].name; ++i) { | 369 for (size_t i = 0; commands[i].name; ++i) { |
356 if (strcmp(commands[i].name, argv[0]) == 0) { | 370 if (strcmp(commands[i].name, argv[0]) == 0) { |
357 commands[i].exec(argc, argv); | 371 commands[i].exec(argc, argv); |
358 return 0; | 372 return 0; |