Exemplo n.º 1
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;
}
Exemplo n.º 2
0
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;
}