From ad48c3c7f7e99d22848347c2c239d2d53e39e5c9 Mon Sep 17 00:00:00 2001 From: gamemann Date: Fri, 12 Nov 2021 16:38:10 +0000 Subject: [PATCH] Add command line source/header files. --- src/cmdline.c | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++ src/cmdline.h | 11 +++++++++++ 2 files changed, 63 insertions(+) create mode 100644 src/cmdline.c create mode 100644 src/cmdline.h diff --git a/src/cmdline.c b/src/cmdline.c new file mode 100644 index 0000000..a3b2533 --- /dev/null +++ b/src/cmdline.c @@ -0,0 +1,52 @@ +#include +#include + +#include "cmdline.h" + +const struct option opts[] = +{ + {"config", required_argument, NULL, 'c'}, + {"offload", no_argument, NULL, 'o'}, + {"list", no_argument, NULL, 'l'}, + {"help", no_argument, NULL, 'h'}, + {NULL, 0, NULL, 0} +}; + +void parsecommandline(struct cmdline *cmd, int argc, char *argv[]) +{ + int c; + + while ((c = getopt_long(argc, argv, "c:lho", opts, NULL)) != -1) + { + switch (c) + { + case 'c': + cmd->cfgfile = optarg; + + break; + + case 'o': + cmd->offload = 1; + + break; + + case 'l': + cmd->list = 1; + + break; + + case 'h': + cmd->help = 1; + + break; + + case '?': + fprintf(stderr, "Missing argument option...\n"); + + break; + + default: + break; + } + } +} \ No newline at end of file diff --git a/src/cmdline.h b/src/cmdline.h new file mode 100644 index 0000000..e086607 --- /dev/null +++ b/src/cmdline.h @@ -0,0 +1,11 @@ +#pragma once + +struct cmdline +{ + char *cfgfile; + unsigned int help : 1; + unsigned int list : 1; + unsigned int offload : 1; +}; + +void parsecommandline(struct cmdline *cmd, int argc, char *argv[]); \ No newline at end of file