int main(int argc, char *argv[]) { alini_parser_t *parser; /* check number of arguments */ if(2 != argc) { printf("usage: %s [path]\n", argv[0]); return 1; } /* create parser */ if(-1 == alini_parser_create(&parser, argv[1])) { printf("Couldn't create parser! Is the file '%s' readable?\n", argv[1]); return 2; } /* set 'found key/value pair' callback */ alini_parser_setcallback_foundkvpair(parser, &staticserverconfig_alini_callback_foundkvpair); /* start parser */ alini_parser_start(parser); /* dispose parser */ alini_parser_dispose(parser); parser = NULL; return 0; }
int catcierge_parse_config(catcierge_args_t *args, int argc, char **argv) { int i; int cfg_err = 0; assert(args); // If the user has supplied us with a config use that. for (i = 1; i < argc; i++) { if (!strcmp(argv[i], "--config")) { if (argc >= (i + 1)) { i++; args->config_path = argv[i]; continue; } else { fprintf(stderr, "No config path specified\n"); return -1; } } } if (args->config_path) { printf("Using config: %s\n", args->config_path); if ((cfg_err = alini_parser_create(&args->parser, args->config_path)) < 0) { fprintf(stderr, "Failed to load config %s\n", args->config_path); return -1; } } else { // Use default. if ((cfg_err = alini_parser_create(&args->parser, "catcierge.cfg")) < 0) { cfg_err = alini_parser_create(&args->parser, "/etc/catcierge.cfg"); } } if (!cfg_err) { alini_parser_setcallback_foundkvpair(args->parser, alini_cb); alini_parser_set_context(args->parser, args); alini_parser_start(args->parser); } else { fprintf(stderr, "No config file found\n"); } return 0; }