Awesome sauce, read description below for details.
[citadel.git] / citadel / utils / ctdldump.c
index 97ff7129117df96dc3c65d16bf104b7ce34b6387..aac23fcc8767c0d5b5207b46a230c65720322ec6 100644 (file)
@@ -1,6 +1,6 @@
-// Don't run this.  It doesn't work and if you try to run it you will immediately die.
+// Dump the Citadel database to a flat file that can be restored by ctdlload on any architecture
 //
-// Copyright (c) 2023 by Art Cancro citadel.org
+// Copyright (c) 2023-2024 by Art Cancro citadel.org
 //
 // This program is open source software.  Use, duplication, or disclosure
 // is subject to the terms of the GNU General Public License, version 3.
@@ -343,7 +343,7 @@ void export_table(int which_cdb) {
        int num_bad_rows = 0;
 
        cdb_rewind(which_cdb);
-       while (ckv = cdb_next_item(which_cdb), ckv.val.ptr!=NULL) {
+       while (ckv = cdb_next_item(which_cdb), ckv.val.ptr!=NULL) {             // always read through to the end
                // Call the export function registered to this table
                export_functions[which_cdb](which_cdb, ckv);
        }
@@ -359,12 +359,14 @@ int main(int argc, char **argv) {
        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 DB Dump utility for Citadel \033[K\033[0m\n"
-                       "\033[44m\033[33m\033[1m Copyright (c) 2023 by citadel.org et al.  \033[K\033[0m\n"
-                       "\033[44m\033[33m\033[1m This program is open source software.  Use, duplication, or disclosure \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");
+       fprintf(stderr, "\033[44m\033[1m"
+               "╔════════════════════════════════════════════════════════════════════════╗\n"
+               "║ DB Dump utility for Citadel                                            ║\n"
+               "║ Copyright (c) 2023-2024 by citadel.org et al.                          ║\n"
+               "║ This program is open source software.  Use, duplication, or disclosure ║\n"
+               "║ is subject to the terms of the GNU General Public license v3.          ║\n"
+               "╚════════════════════════════════════════════════════════════════════════╝\033[0m\n"
+       );
 
        // Parse command line
        int a;
@@ -387,7 +389,8 @@ int main(int argc, char **argv) {
        }
        else {
                fprintf(stderr, "ctdldump: usage: ctdldump -y -h[citadel_dir] >[dump_file]\n");
-               fprintf(stderr, "          [citadel_dir] is your database directory, usually /usr/local/citadel\n");
+               fprintf(stderr, "          -y : yes, I know this program can do damage and I want to run it anyway.\n");
+               fprintf(stderr, "          -h : [citadel_dir] is your server directory, usually /usr/local/citadel\n");
                fprintf(stderr, "          Please read [ https://www.citadel.org/dump-and-load.html ] to learn how to proceed.\n");
                exit(1);
        }