blob: c9f88934327842c28302aa3afebe30b7cd44233e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
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#
|