diff options
author | Mattias Andrée <maandree@member.fsf.org> | 2015-12-28 22:45:45 +0100 |
---|---|---|
committer | Mattias Andrée <maandree@member.fsf.org> | 2015-12-28 22:45:49 +0100 |
commit | 7d8c71019c111134c15a7903ec9acfb5713755fe (patch) | |
tree | 3e7f2441e2a326cfe3ab810ddf00e9a1edc9ebbe /src/satd-run.c | |
parent | m (diff) | |
download | sat-7d8c71019c111134c15a7903ec9acfb5713755fe.tar.gz sat-7d8c71019c111134c15a7903ec9acfb5713755fe.tar.bz2 sat-7d8c71019c111134c15a7903ec9acfb5713755fe.tar.xz |
partially implement satd-list, satd-rm, and satd-run
Signed-off-by: Mattias Andrée <maandree@member.fsf.org>
Diffstat (limited to '')
-rw-r--r-- | src/satd-run.c | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/src/satd-run.c b/src/satd-run.c index 7cccb57..36b66e2 100644 --- a/src/satd-run.c +++ b/src/satd-run.c @@ -39,6 +39,8 @@ main(int argc, char *argv[]) size_t n = 0; char *message = NULL; char **msg_argv = NULL; + char **arg; + int rc = 0; /* Receive and validate message. */ t (readall(SOCK_FILENO, &message, &n) || (n && message[n - 1])); @@ -48,7 +50,27 @@ main(int argc, char *argv[]) t (!msg_argv); } - return 0; + /* Perform action. */ + if (msg_argv) { + for (arg = msg_argv; *arg; arg++) + t (remove_job(*arg, 1) && errno); + } else { + for (;;) + if (remove_job(NULL, 1)) + t (errno); + } + +done: + /* Cleanup. */ + shutdown(SOCK_FILENO, SHUT_WR); + close(SOCK_FILENO); + free(msg_argv); + free(message); + return rc; fail: + if (send_string(SOCK_FILENO, STDERR_FILENO, argv[0], ": ", strerror(errno), "\n", NULL)) + perror(argv[0]); + rc = 1; + goto done; } |