aboutsummaryrefslogtreecommitdiffstats
path: root/src/satrm.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/satrm.c')
-rw-r--r--src/satrm.c50
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);
}