aboutsummaryrefslogtreecommitdiffstats
path: root/packaging/deb/meshbay-hub/DEBIAN
diff options
context:
space:
mode:
Diffstat (limited to 'packaging/deb/meshbay-hub/DEBIAN')
-rwxr-xr-xpackaging/deb/meshbay-hub/DEBIAN/prerm24
1 files changed, 24 insertions, 0 deletions
diff --git a/packaging/deb/meshbay-hub/DEBIAN/prerm b/packaging/deb/meshbay-hub/DEBIAN/prerm
new file mode 100755
index 0000000..359e0a5
--- /dev/null
+++ b/packaging/deb/meshbay-hub/DEBIAN/prerm
@@ -0,0 +1,24 @@
+#!/bin/sh
+set -e
+
+# A hub left running once its package is gone serves from deleted code, and
+# keeps writing bytecode into the shared venv.
+case "$1" in
+ remove|deconfigure)
+ if [ -d /run/systemd/system ]; then
+ systemctl stop meshbay-hub.service 2>/dev/null || true
+ fi
+ ;;
+esac
+
+# The hub's code lives in meshbay-common's venv, and meshbay-common's own
+# cleanup runs only after this package is gone: the bytecode compiled next to
+# it is removed here, or dpkg cannot remove the directories it sits in.
+case "$1" in
+ remove|upgrade|deconfigure)
+ find /opt/meshbay-common/venv/lib/python3.*/site-packages/meshbay_hub \
+ -depth -type d -name __pycache__ -exec rm -rf {} + 2>/dev/null || true
+ ;;
+esac
+
+#DEBHELPER#