int main(int argc, char **argv) {
int i = 0;
- char src_dir[PATH_MAX];
int confirmed = 0;
+ char *ctdldir = CTDLDIR;
// display the greeting
fprintf(stderr, "\033[44m\033[33m\033[1m \033[K\033[0m\n"
"\033[44m\033[33m\033[1m is subject to the terms of the GNU General Public license v3. \033[K\033[0m\n"
"\033[44m\033[33m\033[1m \033[K\033[0m\n");
- // Default source directory unless overridden
- snprintf(src_dir, sizeof(src_dir), "%s/data", CTDLDIR);
-
// Parse command line
int a;
while ((a = getopt(argc, argv, "h:y")) != EOF) {
switch (a) {
case 'h':
- snprintf(src_dir, sizeof(src_dir), "%s/data", optarg);
+ ctdldir = optarg;
break;
case 'y':
confirmed = 1;
}
}
- if (src_dir == NULL) {
- fprintf(stderr, "ctdldump: no source directory was specified.\n");
- exit(1);
- }
-
if (confirmed == 1) {
fprintf(stderr, "ctdldump: You have specified the [-y] flag, so processing will continue.\n");
}
exit(1);
}
+ if (chdir(ctdldir) != 0) {
+ fprintf(stderr, "ctdlload: unable to change directory to [%s]: %m", ctdldir);
+ exit(2);
+ }
+
// backend modules use syslog -- redirect to stderr
openlog("ctdldump", LOG_PERROR , LOG_DAEMON);
// Main entry point
int main(int argc, char **argv) {
- char dst_dir[PATH_MAX];
int confirmed = 0;
+ char *ctdldir = CTDLDIR;
// display the greeting
fprintf(stderr, "\033[44m\033[33m\033[1m \033[K\033[0m\n"
"\033[44m\033[33m\033[1m is subject to the terms of the GNU General Public license v3. \033[K\033[0m\n"
"\033[44m\033[33m\033[1m \033[K\033[0m\n");
- // Default destination directory unless overridden
- snprintf(dst_dir, sizeof(dst_dir), "%s/data", CTDLDIR);
-
// Parse command line
int a;
while ((a = getopt(argc, argv, "h:y")) != EOF) {
switch (a) {
case 'h':
- snprintf(dst_dir, sizeof(dst_dir), "%s/data", optarg);
+ ctdldir = optarg;
break;
case 'y':
confirmed = 1;
break;
default:
- fprintf(stderr, "%s: usage: %s -h dest_dir [<dumpfile]\n", argv[0], argv[0]);
+ fprintf(stderr, "%s: usage: %s -h citadel_dir [<dumpfile]\n", argv[0], argv[0]);
exit(2);
}
}
- if (dst_dir == NULL) {
- fprintf(stderr, "ctdlload: no destination directory was specified.\n");
- exit(1);
- }
-
if (confirmed == 1) {
fprintf(stderr, "ctdlload: You have specified the [-y] flag, so processing will continue.\n");
}
exit(1);
}
+ if (chdir(ctdldir) != 0) {
+ fprintf(stderr, "ctdlload: unable to change directory to [%s]: %m", ctdldir);
+ exit(2);
+ }
+
// backend modules use syslog -- redirect to stderr
openlog("ctdlload", LOG_PERROR , LOG_DAEMON);
// Remove any database that is already in the target directory (yes, delete it, be careful)
- char cmd[PATH_MAX];
- snprintf(cmd, sizeof cmd, "rm -fv %s/cdb.* %s/log.*", dst_dir, dst_dir);
- system(cmd);
+ system("rm -fv ./data/cdb.* ./data/log.*");
// initialize the database backend
cdb_init_backends();