chiark / gitweb /
configure.ac, debian/: Overhaul Wireshark plugin build machinery.
[tripe] / debian / tripe-peer-services.postinst
index db937debbe1dc6750833d599e06aa575ce3607d0..214f82a91df77112a6767432ed65e7b2f7fd98aa 100644 (file)
@@ -46,7 +46,7 @@ restart_services () {
     echo -n " $name"
 
     ## If there's an instance of the service running already then we ask it
-    ## to quit.  This is where everything gets commplicated.
+    ## to quit.  This is where everything gets complicated.
     if silently tripectl svcensure "$name"; then
 
       ## So, what we want to do is ask the service to quit, and make sure it
@@ -95,6 +95,46 @@ restart_services () {
   echo "."
 }
 
+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#