]> code.citadel.org Git - citadel.git/blobdiff - citadel/utils/ctdlload.c
ctdldump/ctdlload: -h now works identical to citserver
[citadel.git] / citadel / utils / ctdlload.c
index 45e68536eb4b85eabb3044cf68e4db0f4f952de7..258c47f9c6a94a19508dce8b4ea125b109b39dd2 100644 (file)
@@ -722,8 +722,8 @@ void ingest(void) {
 
 // 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"
@@ -733,30 +733,22 @@ int main(int argc, char **argv) {
                        "\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");
        }
@@ -767,13 +759,16 @@ int main(int argc, char **argv) {
                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();