4 /* because recdb likes to log stuff.. */
5 struct log_type *MAIN_LOG;
6 void log_module(UNUSED_ARG(struct log_type *lt), UNUSED_ARG(enum log_severity ls), const char *format, ...)
10 vfprintf(stderr, format, va);
15 struct string_list *new_argv;
16 const char *hidden_host_suffix;
19 struct cfg_scan *parent;
24 scan_db(const char *key, void *data, void *extra)
26 struct record_data *rd = data;
27 struct cfg_scan child, *self = extra;
33 if ((irccasestr(key, "enable")
34 || (irccasestr(key, "disable"))
35 || (irccasestr(key, "require")))
36 && enabled_string(rd->d.qstring)) {
38 new_arg = malloc(strlen(self->path)+strlen(key)+4);
39 sprintf(new_arg, "-D%s/%s", self->path, key);
40 string_list_append(new_argv, new_arg);
44 child.path = malloc(strlen(self->path) + strlen(key) + 2);
45 sprintf(child.path, "%s/%s", self->path, key);
46 dict_foreach(rd->d.object, scan_db, &child);
49 default: /* ignore */ break;
55 main(int argc, char *argv[])
58 struct cfg_scan scanner;
62 new_argv = alloc_string_list(4);
63 string_list_append(new_argv, strdup("m4"));
68 cfg_file = "srvx.conf";
71 if (!(cfg_db = parse_database(cfg_file))) {
72 fprintf(stderr, "Unable to parse config file %s; you will get a 'default' expansion.\n", cfg_file);
74 scanner.parent = NULL;
76 dict_foreach(cfg_db, scan_db, &scanner);
79 string_list_append(new_argv, NULL);
80 execvp("m4", new_argv->list);
81 fprintf(stderr, "Error in exec: %s (%d)\n", strerror(errno), errno);
82 fprintf(stderr, "Maybe you do not have the 'm4' program installed?\n");