#include "debug.h"
#include "database.h"
+#include "config.h"
struct user_options {
int max_jobs;
+ char *config_file;
+ int dump_defaults;
};
int read_args(int argc, char *argv[], struct user_options *opts)
{
int option_index = 0, c;
static struct option long_options[] = {
- { .val = 'j', .name = "jobs", .has_arg = 1, },
+ { .val = 'j', .has_arg = 1, .name = "jobs", },
+ { .val = 'c', .has_arg = 1, .name = "config", },
+ { .val = 'd', .has_arg = 1, .name = "dump-default", },
{ },
};
- char short_options[] = "j:";
+ char short_options[] = "j:c:d:";
while (1) {
c = getopt_long(argc, argv, short_options, long_options,
opts->max_jobs = atoi(optarg);
break;
+ case 'c':
+ opts->config_file = optarg;
+ break;
+
+ case 'd':
+ opts->dump_defaults = 1;
+ opts->config_file = optarg;
+ break;
+
case '?':
return -1;
}
struct user_options opts;
struct rrd_database *db, **db_list = NULL;
int sleeptime;
+ int ret = 0;
bzero(&opts, sizeof(opts));
if (read_args(argc, argv, &opts) < 0)
return -1;
+ if (opts.dump_defaults) {
+ ret = write_database(opts.config_file, default_rrds);
+ return 0;
+ }
+
+ if (opts.config_file)
+ db_list = populate_database(opts.config_file);
+ else
+ db_list = default_rrds;
+
+ if (ret || !db_list)
+ return 1;
+
if (rrdtool_create_missing_databases(db_list))
return 1;