.override = override,
.initialize = 0,
.check_required = 1,
- .check_ambiguity = 0
+ .check_ambiguity = 0,
+ .print_errors = 1
};
cmdline_parser_config_file(config_file, &conf, ¶ms);
}
}
DSS_EMERG_LOG("loglevel: %d\n", conf.loglevel_arg);
// cmdline_parser_dump(logfile? logfile : stdout, &conf);
- ret = dss_chdir(conf.dest_dir_arg);
out:
free(config_file);
if (ret >= 0)
exit(EXIT_FAILURE);
}
+static void change_to_dest_dir(void)
+{
+ int ret;
+
+ DSS_INFO_LOG("changing cwd to %s\n", conf.dest_dir_arg);
+ ret = dss_chdir(conf.dest_dir_arg);
+ if (ret >= 0)
+ return;
+ DSS_EMERG_LOG("%s\n", dss_strerror(-ret));
+ exit(EXIT_FAILURE);
+}
+
static void handle_sighup(void)
{
DSS_NOTICE_LOG("SIGHUP\n");
parse_config_file(1);
+ change_to_dest_dir();
}
static void handle_signal(void)
free(newest);
} else
DSS_INFO_LOG("no previous snapshot found\n");
- if (conf.exclude_patterns_given) {
- (*argv)[i++] = dss_strdup("--exclude-from");
- (*argv)[i++] = dss_strdup(conf.exclude_patterns_arg);
-
- }
logname = dss_logname();
if (conf.remote_user_given && !strcmp(conf.remote_user_arg, logname))
(*argv)[i++] = dss_strdup(conf.source_dir_arg);
.override = 0,
.initialize = 1,
.check_required = 0,
- .check_ambiguity = 0
+ .check_ambiguity = 0,
+ .print_errors = 1
};
cmdline_parser_ext(argc, argv, &conf, ¶ms); /* aborts on errors */
if (conf.daemon_given)
daemon_init();
+ change_to_dest_dir();
setup_signal_handling();
ret = call_command_handler();
if (ret < 0)