#!/bin/sh set -e VERSION=${DPKG_MAINTSCRIPT_PACKAGE##*-} clean_dir() { if [ -d "$1" ] && [ ! -L "$1" ]; then rmdir "$1" >/dev/null 2>/dev/null || true fi } drop_cluster() { # if we still have the postgresql-common package, use it to also shutdown # server, etc.; otherwise just remove the directories if [ -x /usr/bin/pg_dropcluster ]; then pg_dropcluster --stop-server $VERSION "$1" else # remove data directory PGDATALINK="/etc/postgresql/$VERSION/$1/pgdata" if [ -e "$PGDATALINK" ]; then rm -rf $(readlink -f "$PGDATALINK") "$PGDATALINK" else rm -rf "/var/lib/postgresql/$VERSION/$1/" fi # remove log file, including rotated ones LOGLINK="/etc/postgresql/$VERSION/$1/log" if [ -e "$LOGLINK" ]; then LOG=$(readlink -f "$LOGLINK") rm -f $LOG* "$LOGLINK" else rm -f /var/log/postgresql/postgresql-$VERSION-"$1".log* fi # remove conffiles for f in pg_hba.conf pg_ident.conf postgresql.conf start.conf environment pg_ctl.conf; do rm -f /etc/postgresql/$VERSION/"$1"/$f done # remove empty conf.d directories for d in /etc/postgresql/$VERSION/"$1"/*/; do clean_dir "$d" done clean_dir /etc/postgresql/$VERSION/"$1" fi } purge_package () { # ask the user if they want to remove clusters. If debconf is not # available, just remove everything if [ -e /usr/share/debconf/confmodule ]; then db_set $DPKG_MAINTSCRIPT_PACKAGE/postrm_purge_data true db_input high $DPKG_MAINTSCRIPT_PACKAGE/postrm_purge_data || : db_go || : db_get $DPKG_MAINTSCRIPT_PACKAGE/postrm_purge_data || : [ "$RET" = "false" ] && return 0 fi for c in /etc/postgresql/$VERSION/*; do [ -e "$c/postgresql.conf" ] || continue cluster=$(basename "$c") echo "Dropping cluster $cluster..." drop_cluster "$cluster" done clean_dir /etc/postgresql/$VERSION clean_dir /var/lib/postgresql/$VERSION clean_dir /var/log/postgresql/$VERSION } if [ "$1" = purge ] && [ -d "/etc/postgresql/$VERSION" ] && [ "$(ls /etc/postgresql/$VERSION)" ]; then # can't load debconf from a function if [ -e /usr/share/debconf/confmodule ]; then . /usr/share/debconf/confmodule fi purge_package fi #DEBHELPER#