summaryrefslogtreecommitdiffstats
path: root/debian/preinst
blob: 511cca15aa1d1539f2ad079d35d3c9e9bec703d3 (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
#!/bin/sh
# preinst script for gitolite
# Copyright 2011 by Gerfried Fuchs <rhonda@debian.at>
# Licenced under WTFPLv2

set -e
#DEBHELPER#

# summary of how this script can be called:
#        * <new-preinst> `install'
#        * <new-preinst> `install' <old-version>
#        * <new-preinst> `upgrade' <old-version>
#        * <old-preinst> `abort-upgrade' <new-version>
# for details, see http://www.debian.org/doc/debian-policy/ or
# the debian-policy package

rm_conffile() {
    local PKGNAME="$1"
    local CONFFILE="$2"

    [ -e "$CONFFILE" ] || return 0

    local md5sum="$(md5sum $CONFFILE | sed -e 's/ .*//')"
    local old_md5sum="$(dpkg-query -W -f='${Conffiles}' $PKGNAME | \
            sed -n -e "\' $CONFFILE ' { s/ obsolete$//; s/.* //; p }")"
    if [ "$md5sum" != "$old_md5sum" ]; then
        echo "Obsolete conffile $CONFFILE has been modified by you."
        echo "Saving as $CONFFILE.dpkg-bak ..."
        mv -f "$CONFFILE" "$CONFFILE".dpkg-bak
    else
        echo "Removing obsolete conffile $CONFFILE ..."
        rm -f "$CONFFILE"
    fi
}

# cleanup for configuration stored in /etc that got installed by packages prior to 2.0-1
case "$1" in
    install|upgrade)
	    if dpkg --compare-versions "$2" le "2.0-1"; then
		    for i in example.conf example.gitolite.rc VERSION; do
			    rm_conffile gitolite "/etc/gitolite/$i"
		    done
	    fi
esac

exit 0