diff options
author | Junichi Uekawa <dancer@netfort.gr.jp> | 2008-03-15 09:52:43 +0900 |
---|---|---|
committer | Junichi Uekawa <dancer@netfort.gr.jp> | 2008-03-15 09:52:43 +0900 |
commit | 3c0bdbecc08c374d1b3dd880648bf061bac829e4 (patch) | |
tree | 64675726cd7119aea9b5319b1617de7602128a9e /debian/pbuilder.config | |
parent | 74788fa1551aa906b327464d4ae422e21b3bf792 (diff) | |
download | pbuilder-3c0bdbecc08c374d1b3dd880648bf061bac829e4.tar pbuilder-3c0bdbecc08c374d1b3dd880648bf061bac829e4.tar.gz |
move pbuilder.postinst to pbuilder.config
Diffstat (limited to 'debian/pbuilder.config')
-rwxr-xr-x | debian/pbuilder.config | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/debian/pbuilder.config b/debian/pbuilder.config new file mode 100755 index 0000000..dceca93 --- /dev/null +++ b/debian/pbuilder.config @@ -0,0 +1,106 @@ +#!/bin/sh +# postinst script for pbuilder +# +# see: dh_installdeb(1) + +. /usr/share/debconf/confmodule + +set -e + +# summary of how this script can be called: +# * <postinst> `configure' <most-recently-configured-version> +# * <old-postinst> `abort-upgrade' <new version> +# * <conflictor's-postinst> `abort-remove' `in-favour' <package> +# <new-version> +# * <postinst> `abort-remove' +# * <deconfigured's-postinst> `abort-deconfigure' `in-favour' +# <failed-install-package> <version> `removing' +# <conflicting-package> <version> +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + + +case "$1" in + configure) + + CONFFILE=/etc/pbuilderrc + PLACEHOLDER='http://you-have-broken-debconf-configuration.example.com/' + + # if there is a custom file, then we shouldn't touch it + if [ -f "$CONFFILE" ] ; then + CURRENTMIRROR=$(grep -E "^[ ]*MIRRORSITE=" "$CONFFILE" | sed 's#MIRRORSITE=##g') + if [ "$CURRENTMIRROR" ] ; then + db_input low pbuilder/rewrite || [ $? = 30 ] + db_go + + db_get pbuilder/rewrite + [ "$RET" = "true" ] || exit 0 + + # make sure latter calls do not overwrite stuff silently + db_set pbuilder/rewrite "false" + else + # no MIRRORSITE line found in the pbuilderrc file + echo "MIRRORSITE=$PLACEHOLDER" >> "$CONFFILE" + MIRRORSITE="" + db_set pbuilder/mirrorsite "" + fi + else + echo "MIRRORSITE=$PLACEHOLDER" > "$CONFFILE" + MIRRORSITE="" + db_set pbuilder/mirrorsite "" + fi + + db_get pbuilder/mirrorsite + [ "$RET" = "$PLACEHOLDER" ] && db_set pbuilder/mirrorsite "" || true + db_input medium pbuilder/mirrorsite || [ $? = 30 ] + db_go + + db_get pbuilder/mirrorsite + MIRRORSITE="$RET" + + # the "$PLACEHOLDER" alternative is just a safety net, + # but that should really never happen + if [ -z "$MIRRORSITE" ] || [ "$MIRRORSITE" = "$PLACEHOLDER" ] ; then + SRCLISTDIR=/etc/apt/sources.list.d + MIRRORSITE=$( + ( [ -f /etc/apt/sources.list ] && cat /etc/apt/sources.list || true ; + [ -f $SRCLISTDIR/*.sources.list ] && cat $SRCLISTDIR/*.sources.list || true ) \ + | grep -E '^deb ' | head -n 1 | awk '{print $2;}' + ) + while [ -z "$MIRRORSITE" ] ; do + db_input high pbuilder/nomirror || true + db_input high pbuilder/mirrorsite && RETCODE=$? || RETCODE=$? + db_go + + # if the interface is non-interactive, still set a valid mirror + if [ $RETCODE = 30 ] ; then + MIRRORSITE="http://cdn.debian.net/debian" + else + db_get pbuilder/mirrorsite + MIRRORSITE="$RET" + fi + done + db_set pbuilder/mirrorsite "$MIRRORSITE" + fi + + sed -i "s#^\s*MIRRORSITE=.*\$#MIRRORSITE=$MIRRORSITE#" "$CONFFILE" + + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 + + |