From: Jeremy Laine Date: Sun, 5 Nov 2006 14:17:02 +0000 (+0000) Subject: start handling settings migration X-Git-Url: http://git.polytechnique.org/?p=diogenes.git;a=commitdiff_plain;h=2ecf8ecb1b9e2a4097b0d7600a7e7ae1d15e8b6a start handling settings migration --- diff --git a/debian/diogenes.config b/debian/diogenes.config index 089b92e..02e838a 100644 --- a/debian/diogenes.config +++ b/debian/diogenes.config @@ -10,6 +10,49 @@ getwwwoption() { fi } +# migrate pre-dbc debconf values +migrate_settings() { + dumpfile=$1 + rm -f $dumpfile + touch $dumpfile + chmod 0006 $dumpfile + + db_get "diogenes/databasemgr_type" + dbtype="$RET" + if [ "$dbtype" != "Automatic" ] ; then + echo "Not migrating manual pre-dbconfig settings" + return + fi + echo "Migrating automatic pre-dbconfig settings" + db_get "diogenes/databasemgr_server" + if [ -n "$RET" ] && [ "$RET" != "localhost" ]; then + echo "dbserver=\"$RET\"" >> $dumpfile + fi + db_get "diogenes/database_name" + if [ -n "$RET" ]; then + echo "dbname=\"$RET\"" >> $dumpfile + fi + db_get "diogenes/database_user" + if [ -n "$RET" ]; then + echo "dbuser=\"$RET\"" >> $dumpfile + fi + db_get "diogenes/database_pass" + if [ -n "$RET" ]; then + echo "dbpass=\"$RET\"" >> $dumpfile + fi +} + +clean_settings() { + echo "Removing pre-dbconfig settings" + db_clear "diogenes/databasemgr_type" || true + db_clear "diogenes/databasemgr_server" || true + db_clear "diogenes/dbmyadmin" || true + db_clear "diogenes/dbadmpass" || true + db_clear "diogenes/database_name" || true + db_clear "diogenes/database_user" || true + db_clear "diogenes/database_pass" || true +} + # Use debconf baby . /usr/share/debconf/confmodule @@ -69,8 +112,20 @@ if [ -f /usr/share/dbconfig-common/dpkg/config.mysql ]; then # check if we are migrating from a pre-dbc version if [ "$dbc_oldversion" ] && [ "$dbc_first_version" ] && \ dpkg --compare-versions "$dbc_first_version" gt "$dbc_oldversion"; then - echo "WE ARE MIGRATING" + migrating="yes" fi + + if [ -n "$migrating" ]; then + dumpfile=/etc/diogenes/diogenes.dump + migrate_settings $dumpfile + dbc_load_include="sh:$dumpfile" + fi + dbc_go diogenes $@ + + if [ -n "$migrating" ]; then + rm -f $dumpfile + #clean_settings + fi fi diff --git a/debian/diogenes.templates b/debian/diogenes.templates index 0bb5f46..f76cd7d 100644 --- a/debian/diogenes.templates +++ b/debian/diogenes.templates @@ -15,7 +15,7 @@ _Description: Welcome to the Diogenes setup program Template: diogenes/purge_removes_data Type: boolean -Default: true +Default: false _Description: Remove web site data after "purging" the diogenes package? Should the data that makes up Diogenes's web sites be removed when the diogenes packages is purged with the "dpkg --purge diogenes" command