]> Pileus Git - lackey/blobdiff - src/args.c
Add args and usage output
[lackey] / src / args.c
diff --git a/src/args.c b/src/args.c
new file mode 100644 (file)
index 0000000..afc0b48
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2016 Andy Spencer <andy753421@gmail.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <getopt.h>
+
+#include "args.h"
+#include "util.h"
+
+/* Setup info */
+static int    argc;
+static char **argv;
+
+/* Options */
+const char *short_options = "h";
+
+struct option long_options[] = {
+       {"help", 0, NULL, 'h'},
+};
+
+/* Usage */
+static void usage(char *name)
+{
+       printf("Usage:\n");
+       printf("  %s [OPTION...]\n", name);
+       printf("\n");
+       printf("Options:\n");
+       printf("  -h, --help  Print usage information\n");
+}
+
+/* Initialize */
+void args_setup(int _argc, char **_argv)
+{
+       argc = _argc;
+       argv = _argv;
+}
+
+/* Initialize */
+void args_init(void)
+{
+       while (1) {
+               int c = getopt_long(argc, argv,
+                               short_options, long_options, NULL);
+               if (c == -1)
+                       break;
+               switch (c) {
+                       case 'h':
+                               usage(argv[0]);
+                               exit(0);
+                               break;
+               }
+       }
+}