summaryrefslogtreecommitdiffstats
path: root/debian/postgresql-16.postrm
diff options
context:
space:
mode:
Diffstat (limited to 'debian/postgresql-16.postrm')
-rw-r--r--debian/postgresql-16.postrm80
1 files changed, 80 insertions, 0 deletions
diff --git a/debian/postgresql-16.postrm b/debian/postgresql-16.postrm
new file mode 100644
index 0000000..c9f8893
--- /dev/null
+++ b/debian/postgresql-16.postrm
@@ -0,0 +1,80 @@
+#!/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#