diff options
| author | Drew DeVault <sir@cmpwn.com> | 2020-09-23 11:19:29 -0400 |
|---|---|---|
| committer | Drew DeVault <sir@cmpwn.com> | 2020-09-23 11:24:23 -0400 |
| commit | 58500c8e530cc9b0807afbe8b068fe7b00db0131 (patch) | |
| tree | 25d8d12de0e3a9ec1bc65a5256ab3bebe06771e2 /src/main.c | |
| parent | ccae8ffd2807b8b984b657b6321802fa00b52427 (diff) | |
| download | gmnisrv-58500c8e530cc9b0807afbe8b068fe7b00db0131.tar.gz gmnisrv-58500c8e530cc9b0807afbe8b068fe7b00db0131.tar.xz gmnisrv-58500c8e530cc9b0807afbe8b068fe7b00db0131.zip | |
Initial config parser
Diffstat (limited to 'src/main.c')
| -rw-r--r-- | src/main.c | 39 |
1 files changed, 36 insertions, 3 deletions
@@ -1,10 +1,43 @@ +#include <getopt.h> #include <stdio.h> +#include "config.h" + +static void +usage(const char *argv_0) +{ + fprintf(stderr, "Usage: %s [-C path]\n", argv_0); +} int main(int argc, char **argv) { - printf("Hello world!\n"); - (void)argc; - (void)argv; + struct gmnisrv_config conf = {0}; + + char *confpath = SYSCONFDIR "/gmnisrv.ini"; + int c; + while ((c = getopt(argc, argv, "C:h")) != -1) { + switch (c) { + case 'C': + confpath = optarg; + break; + case 'h': + usage(argv[0]); + return 0; + default: + fprintf(stderr, "Unknown flag %c\n", c); + usage(argv[0]); + return 1; + } + } + if (optind < argc) { + usage(argv[0]); + return 1; + } + + int r = load_config(&conf, confpath); + if (r != 0) { + return r; + } + return 0; } |
