* Insane tester of reading configuration files
*
* (c) 2006 Robert Spalek <robert@ucw.cz>
+ * (c) 2012 Martin Mares <mj@ucw.cz>
*/
#include <ucw/lib.h>
#include <time.h>
static int verbose;
-static int new_context;
static int reload;
struct sub_sect_1 {
};
static char *help = "\
-Usage: conf-test [ctxt] <options>\n\
+Usage: conf-test [ctxt] [nojournal] <options>\n\
\n\
Options:\n" CF_USAGE "\
-r, --reload\t\tReload configuration\n\
main(int argc, char *argv[])
{
log_init(argv[0]);
-
struct cf_context *cc = NULL, *prev = NULL;
- if (argc > 1 && !strcmp(argv[1], "ctxt")) {
- cc = cf_new_context();
- prev = cf_switch_context(cc);
- argc--, argv++;
+
+ // Special arguments which have to be parsed before cf_getopt()
+ while (argc > 1) {
+ if (!strcmp(argv[1], "ctxt")) {
+ cc = cf_new_context();
+ prev = cf_switch_context(cc);
+ argc--, argv++;
+ } else if (!strcmp(argv[1], "nojournal")) {
+ cf_set_journalling(0);
+ argc--, argv++;
+ } else
+ break;
}
cf_declare_section("top", &cf_top, 0);
int opt;
while ((opt = cf_getopt(argc, argv, short_opts, long_opts, NULL)) >= 0)
switch (opt) {
- case 'n': new_context++; break;
case 'r': reload++; break;
case 'v': verbose++; break;
default: usage("unknown option %c\n", opt);
bclose(out);
}
- if (new_context) {
+ if (cc) {
cf_switch_context(prev);
- cf_free_context(cc);
+ cf_delete_context(cc);
}
return 0;