diff options
author | Mattias Andrée <maandree@member.fsf.org> | 2015-12-25 22:06:56 +0100 |
---|---|---|
committer | Mattias Andrée <maandree@member.fsf.org> | 2015-12-25 22:06:56 +0100 |
commit | 196abe367c46cf3c2337b4b1da8bb2c084065c7d (patch) | |
tree | 1c55433b9195b6c398ab3ab26a867d0b794ed806 /src/satrm.c | |
parent | improve send_command (diff) | |
download | sat-196abe367c46cf3c2337b4b1da8bb2c084065c7d.tar.gz sat-196abe367c46cf3c2337b4b1da8bb2c084065c7d.tar.bz2 sat-196abe367c46cf3c2337b4b1da8bb2c084065c7d.tar.xz |
satr run select jobs + satrm can remove multiple jobs
Signed-off-by: Mattias Andrée <maandree@member.fsf.org>
Diffstat (limited to '')
-rw-r--r-- | src/satrm.c | 32 |
1 files changed, 27 insertions, 5 deletions
diff --git a/src/satrm.c b/src/satrm.c index b3dafcd..8097b18 100644 --- a/src/satrm.c +++ b/src/satrm.c @@ -40,7 +40,7 @@ char *argv0 = "satrm"; static void usage(void) { - fprintf(stderr, "usage: %s JOB-ID\n", + fprintf(stderr, "usage: %s JOB-ID...\n", strrchr(argv0) ? (strrchr(argv0) + 1) : argv0); exit(2); } @@ -60,11 +60,33 @@ usage(void) int main(int argc, char *argv[]) { - if (argc > 0) argv0 = argv[0]; - if (argc != 2) usage(); + size_t n; + char *msg; + int i; - if (send_command(SAT_REMOVE, 0, argv[1])) - return errno ? (perror(argv0), 1) : 3; + if (argc > 0) argv0 = argv[0]; + if (argc < 2) usage(); + if (!strcmp(argv[1], "--") + argv++, argc--; + for (i = 1; i < argc; i++) + if (argv[i][0] == '-') + usage(); + + if (!(msg = malloc(n = measure_array(argv + 1)))) + goto fail; + store_array(msg, argv + 1); + + if (send_command(SAT_REMOVE, n, msg)) { + if (errno) + goto fail; + free(msg); + return 3; + } return 0; + +fail: + perror(*argv); + free(msg); + return 1; } |