diff options
Diffstat (limited to '')
-rw-r--r-- | src/satrm.c | 50 |
1 files changed, 7 insertions, 43 deletions
diff --git a/src/satrm.c b/src/satrm.c index 28bea0b..0a9eccf 100644 --- a/src/satrm.c +++ b/src/satrm.c @@ -19,35 +19,17 @@ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. */ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> - #include "client.h" +#include "common.h" -/** - * The name of the process. - */ -char *argv0 = "satrm"; +COMMAND("satrm") +USAGE("JOB-ID...") /** - * Print usage information. - */ -static void -usage(void) -{ - fprintf(stderr, "usage: %s JOB-ID...\n", - strrchr(argv0) ? (strrchr(argv0) + 1) : argv0); - exit(2); -} - - -/** * Remove a job from the queue of jobs. * * @param argc Should be 2. @@ -63,31 +45,13 @@ main(int argc, char *argv[]) { size_t n; char *msg; - int i; if (argc > 0) argv0 = argv[0]; if (argc < 2) usage(); - if (!strcmp(argv[1], "--") - argv++, argc--; - for (i = 1; i < argc; i++) - if (strchr("-", 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; + NO_OPTIONS; + CONSTRUCT_MESSAGE; + SEND(SAT_REMOVE, n, msg)); + END(msg); } |