summaryrefslogtreecommitdiff
path: root/main.c
diff options
context:
space:
mode:
authorMitja Felicijan <mitja.felicijan@gmail.com>2024-10-07 21:39:00 +0200
committerMitja Felicijan <mitja.felicijan@gmail.com>2024-10-07 21:39:00 +0200
commit4e2f5ec4bf2aec43f184674cfe9831d20e13e34a (patch)
tree60ae9971d033f6865ea2b91a36e31c1ff0a88f7d /main.c
parent15d5e19422c9b19cd452297ff0d333149c94e787 (diff)
downloadttdaw-4e2f5ec4bf2aec43f184674cfe9831d20e13e34a.tar.gz
Added basic argument parsing and better Makefile
Diffstat (limited to 'main.c')
-rw-r--r--main.c43
1 files changed, 42 insertions, 1 deletions
diff --git a/main.c b/main.c
index 51bcdb6..4fc3d1a 100644
--- a/main.c
+++ b/main.c
@@ -1,7 +1,48 @@
#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <getopt.h>
+
+void help(const char *argv0) {
+ printf("Usage: %s [options]\n"
+ "\nAvailable options:\n"
+ " -h,--help this help\n"
+ " -v,--version show version\n"
+ " -p,--port=client:port device port\n",
+ argv0);
+}
int main(int argc, char *argv[]) {
- fprintf(stdout, "Oh, hi Mark!\n");
+ const char short_options[] = "hvlp";
+ const struct option long_options[] = {
+ {"help", 0, NULL, 'h'},
+ {"version", 0, NULL, 'v'},
+ {"list", 0, NULL, 'l'},
+ {"port", 1, NULL, 'p'},
+ {0},
+ };
+
+ int c;
+ while ((c = getopt_long(argc, argv, short_options, long_options, NULL)) != -1) {
+ switch (c) {
+ case 'h':
+ help(argv[0]);
+ return 0;
+ case 'v':
+ fprintf(stdout, "Version\n");
+ return 0;
+ case 'l':
+ fprintf(stdout, "List\n");
+ return 0;
+ case 'p':
+ fprintf(stdout, "Port\n");
+ return 0;
+ default:
+ fprintf(stdout, "No option provided\n");
+ return 0;
+ }
+ }
+
return 0;
}