X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/tripe/blobdiff_plain/904828efba2a3deadc45b46764e43b1e83aec46e..f220a1d75f50cea337908a392bf7f01b573edc97:/debian/tripe-peer-services.postinst diff --git a/debian/tripe-peer-services.postinst b/debian/tripe-peer-services.postinst index c21dc16c..214f82a9 100644 --- a/debian/tripe-peer-services.postinst +++ b/debian/tripe-peer-services.postinst @@ -95,6 +95,46 @@ restart_services () { echo "." } -restart_services conntrack connect watch +retire_service () { + name=$1 version=$2 + + ## If the service is currently running, then ask it to stop. + if tripectl >/dev/null 2>&1 svcensure $name && \ + ! tripectl >/dev/null 2>&1 svcensure $name $version~ + then + tripectl svcsubmit $name quit + fi + + ## Remove the symbolic link if it's there. + if [ -L /etc/tripe/services/$name ]; then + case $(readlink /etc/tripe/services/$name) in + /usr/lib/tripe/services/$name) + rm /etc/tripe/services/$name + ;; + esac + fi +} + +case "$1" in + configure) + v=$2 + + ## Apply upgrades iteratively until we catch up with reality. + while :; do + + ## Here, we killed the `watch' service. + if dpkg --compare-versions "$v" lt-nl 1.0.0pre14~; then + retire_service watch 1.0.0pre14 + v=1.0.0pre14 + + ## No more updates to apply. + else + break + fi + done + ;; +esac + +restart_services conntrack connect #DEBHELPER#