diff options
Diffstat (limited to 'debian/dbapps-lib')
-rw-r--r-- | debian/dbapps-lib | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/debian/dbapps-lib b/debian/dbapps-lib new file mode 100644 index 0000000..16aba10 --- /dev/null +++ b/debian/dbapps-lib @@ -0,0 +1,101 @@ +# some library functions for phpbb3 maintainer scripts +# copyright 2010 J.M. Roth <jmroth@iip.lu> + +run_sql () { + if [ -f /etc/dbconfig-common/phpbb3.conf ] ; then + . /etc/dbconfig-common/phpbb3.conf + else + echo "$0 $@: run_sql: cannot load db metadata" 1>&2 + return 1 + fi + + local sql="$1" + + ERR= + case $dbc_dbtype in + mysql ) + l_dbc_dbserver=${dbc_dbserver:- localhost} + echo $sql | mysql -h ${l_dbc_dbserver} ${dbc_dbport:+--port $dbc_dbport} -u $dbc_dbuser -p$dbc_dbpass $dbc_dbname -s || run_sql_fail $dbc_dbtype + ;; + pgsql ) + if [ -z "${dbc_dbserver}" ]; then + echo $sql | su - postgres -c "psql ${dbc_dbport:+-p $dbc_dbport} -d \"dbname=$dbc_dbname ${dbc_ssl:+sslmode=require}\" -q" || run_sql_fail $dbc_dbtype + else + echo $sql | psql -h $dbc_dbserver ${dbc_dbport:+-p $dbc_dbport} -d \"dbname=$dbc_dbname ${dbc_ssl:+sslmode=require}\" -q || run_sql_fail $dbc_dbtype + fi + ;; + sqlite ) + echo $sql | sqlite $dbc_basepath/$dbc_dbname || run_sql_fail $dbc_dbtype + ;; + * ) + echo "run_sql: $dbc_dbtype not supported" >&2 + ;; + esac + + return 0 +} + +run_sql_fail () { + echo "run_sql $@ fail" >&2 + ERR=fail +} + +postgres_update_seqs () { +# repair pgsql sequences, this has always been a source of trouble +# on prepopulated DBs + if db_get phpbb3/dbconfig-install && [ "$RET" = "true" ] ; then + db_get phpbb3/database-type + if [ "$RET" = "pgsql" ]; then + db_get phpbb3/db/dbname + local dbname="$RET" + db_get phpbb3/remote/host + local dbhost="$RET" + db_get phpbb3/remote/port + local dbport="$RET" + if [ -z "${dbc_dbserver}" ]; then + /usr/share/phpbb3/postgres_update_seqs.sh /usr/share/dbconfig-common/data/phpbb3/install/pgsql | su - postgres -c "psql ${dbhost:+-h $dbhost} ${dbport:+-p $dbport} -d $dbname -q >/dev/null" + else + /usr/share/phpbb3/postgres_update_seqs.sh /usr/share/dbconfig-common/data/phpbb3/install/pgsql | psql ${dbhost:+-h $dbhost} ${dbport:+-p $dbport} -d $dbname -q >/dev/null + fi + fi + fi +} + +_md5 () { + echo -n $1 | md5sum | cut -c-32 +} + +dc_true () { + db_get $1 + [ "$RET" = "true" ] + return $? +} + +dc_forget () { + db_reset $1 + db_fset $1 seen false +} + +dc_get () { + db_get $1 + echo -n $RET +} + +dc_copy () { + db_set $2 "$(dc_get $1)" +} + +dc_out () { + db_get $1 + echo $1: $RET # -- "$(debconf-show phpbb3 | grep $1)" +} + +dc_dbg () { + [ "$PB3DEBUG" != "maint" ] && return + set +e + echo $0:$LINENO $@ + for d in install upgrade reinstall remove; do + db_get phpbb3/dbconfig-$d && echo [dbc] phpbb3/dbconfig-$d "$RET" + done + set -e +} |