From 606facf2d89340653be66ca44a199e0a0d0482fb Mon Sep 17 00:00:00 2001 From: Tristan Riehs Date: Wed, 27 Sep 2023 14:01:42 +0200 Subject: start --- src/rpt.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 src/rpt.c diff --git a/src/rpt.c b/src/rpt.c new file mode 100644 index 0000000..f0a9472 --- /dev/null +++ b/src/rpt.c @@ -0,0 +1,56 @@ +#define _GNU_SOURCE /* getopt_long */ + +#include +#include +#include +#include + +void +print_usage(FILE *output) +{ + fprintf(output, "Usage:\n"); + fprintf(output, "rpt [-n | --count COUNT] [-f | --force] COMMAND\n"); + fprintf(output, "rpt [-h | --help]\n"); + fprintf(output, "rpt [-V | --version]\n"); +} + +int +main(int argc, char* argv[]) +{ + struct option const opts[] = { + {"count", required_argument, NULL, 'n'}, + {"force", no_argument, NULL, 'f'}, + {"version", no_argument, NULL, 'V'}, + {"help", no_argument, NULL, 'h'}, + {NULL, 0, NULL, 0} + }; + + opterr = 0; /* dismiss getopt error message */ + int opt; + + char *strcount = NULL; + long count; + + void (*handle_exit_f)(int status); + + while ((opt = getopt_long(argc, argv, "+:n:fVh", opts, NULL)) >= 0) + { + switch(opt) + { + case 'n': + strcount = optarg; + break; + case 'f': + + case ':': + fprintf(stderr, "COUNT value missing.\n"); + print_usage(stderr); + return 1; + default: + print_usage(stderr); + return 1; + } + } + + return 0; +} -- cgit v1.2.3