From: Art Cancro Date: Tue, 30 Mar 2021 18:54:26 +0000 (-0400) Subject: updated database_cleanup.sh X-Git-Tag: v939~79 X-Git-Url: https://code.citadel.org/?p=citadel.git;a=commitdiff_plain;h=89614b347d070ebca99c71e613532371f7877234 updated database_cleanup.sh --- diff --git a/citadel/.gitignore b/citadel/.gitignore index 81bb5c37a..7f78ac606 100644 --- a/citadel/.gitignore +++ b/citadel/.gitignore @@ -22,7 +22,6 @@ config.status configure configure-stamp ctdlmigrate -database_cleanup.sh getmail modules_init.c modules_init.h diff --git a/citadel/Makefile.in b/citadel/Makefile.in index 1a492321f..bf475dabd 100644 --- a/citadel/Makefile.in +++ b/citadel/Makefile.in @@ -300,7 +300,7 @@ clean: rm -vf $(SERVER_TARGETS) $(UTIL_TARGETS) $(UTILBIN_TARGETS) $(NOINST_TARGETS) cleaner: clean - rm -vrf $(SERVER_TARGETS) $(UTIL_TARGETS) $(UTILBIN_TARGETS) $(NOINST_TARGETS) database_cleanup.sh *.la + rm -vrf $(SERVER_TARGETS) $(UTIL_TARGETS) $(UTILBIN_TARGETS) $(NOINST_TARGETS) *.la rm -vrf modules_upgrade.c modules_init.c modules_init.h Make_modules Make_sources distclean: cleaner diff --git a/citadel/configure.ac b/citadel/configure.ac index 1c7d7ae58..8320a9dbf 100644 --- a/citadel/configure.ac +++ b/citadel/configure.ac @@ -918,7 +918,7 @@ AC_SUBST(SETUP_LIBS) AC_SUBST(DIFF) AC_SUBST(PATCH) AC_CONFIG_FILES([Makefile]) -AC_OUTPUT(database_cleanup.sh po/citadel-setup/Makefile) +AC_OUTPUT(po/citadel-setup/Makefile) if test -z "$DATABASE"; then AC_MSG_WARN([No database driver was found. Please install Berkeley DB.]) diff --git a/citadel/database_cleanup.sh b/citadel/database_cleanup.sh new file mode 100755 index 000000000..c35527497 --- /dev/null +++ b/citadel/database_cleanup.sh @@ -0,0 +1,160 @@ +#!/bin/bash + +die () { + echo Exiting. + exit 1 +} + +DATA_DIR="/usr/local/citadel" + +usage() { + echo "Usage: database_cleanup.sh [ -h citadel_dir ]" + exit 2 +} + +PARSED_ARGUMENTS=$(getopt -a -n database_cleanup.sh -o h: -- "$@") +VALID_ARGUMENTS=$? +if [ "$VALID_ARGUMENTS" != "0" ]; then + usage +fi + +eval set -- "$PARSED_ARGUMENTS" +while : +do + case "$1" in + -h | --alpha) + DATA_DIR=${2} + shift 2 + ;; + # -- means the end of the arguments; drop this, and break out of the while loop + --) shift; break ;; + # If invalid options were passed, then getopt should have reported an error, + # which we checked as VALID_ARGUMENTS when getopt was called... + *) echo "Unexpected option: $1 - this should not happen." + usage + ;; + esac +done + +DATA_DIR=$DATA_DIR/data + +# If we're on an AppDir system, use the embedded db_tools. +if [ "${APPDIR}" != "" ] ; then + export PATH=${APPDIR}/usr/bin:$PATH + RECOVER=${APPDIR}/usr/bin/db_recover + DUMP=${APPDIR}/usr/bin/db_dump + LOAD=${APPDIR}/usr/bin/db_load + +# If we're on an Easy Install system, use our own db_ tools. +elif [ -x /usr/local/ctdlsupport/bin/db_dump ] ; then + export PATH=/usr/local/ctdlsupport/bin:$PATH + RECOVER=/usr/local/ctdlsupport/bin/db_recover + DUMP=/usr/local/ctdlsupport/bin/db_dump + LOAD=/usr/local/ctdlsupport/bin/db_load + +# usual install +else + if test -f /usr/bin/db_dump; then + RECOVER=/usr/bin/db_recover + DUMP=/usr/bin/db_dump + LOAD=/usr/bin/db_load + else + if test -n "`ls /usr/bin/db?*recover`"; then + # seems we have something debian alike thats adding version in the filename + if test "`ls /usr/bin/db*recover |wc -l`" -gt "1"; then + echo "Warning: you have more than one version of the Berkeley DB utilities installed." 1>&2 + echo "Using the latest one." 1>&2 + RECOVER=`ls /usr/bin/db*recover |sort |tail -n 1` + DUMP=`ls /usr/bin/db*dump |sort |tail -n 1` + LOAD=`ls /usr/bin/db*load |sort |tail -n 1` + else + RECOVER=`ls /usr/bin/db*recover` + DUMP=`ls /usr/bin/db*dump` + LOAD=`ls /usr/bin/db*load` + fi + else + echo "database_cleanup.sh cannot find the Berkeley DB utilities. Exiting." 1>&2 + die + fi + + fi +fi + +# Ok, let's begin. + +clear +cat </tmp/CitaDump.$x || { + echo error $? + die + } + rm -f $DATA_DIR/$filename +done + +echo Removing old databases +rm -f ./data/* + +for x in 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d +do + filename=cdb.$x + echo Loading $filename + $LOAD -h $DATA_DIR $filename &2 - echo "Using the latest one." 1>&2 - RECOVER=`ls /usr/bin/db*recover |sort |tail -n 1` - DUMP=`ls /usr/bin/db*dump |sort |tail -n 1` - LOAD=`ls /usr/bin/db*load |sort |tail -n 1` - else - RECOVER=`ls /usr/bin/db*recover` - DUMP=`ls /usr/bin/db*dump` - LOAD=`ls /usr/bin/db*load` - fi - else - echo "database_cleanup.sh cannot find the Berkeley DB utilities. Exiting." 1>&2 - die - fi - - fi -fi - -# Ok, let's begin. -# - -clear -cat </tmp/CitaDump.$x || { - echo error $? - die - } - rm -f $DATA_DIR/$filename -done - -echo Removing old databases -rm -f ./data/* - -for x in 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d -do - filename=cdb.$x - echo Loading $filename - $LOAD -h $DATA_DIR $filename