[DRE-commits] [schleuder] 05/10: debian/schleuder.postinst: Check if fresh install or upgrade

Georg Faerber georg-alioth-guest at moszumanska.debian.org
Tue Dec 13 18:03:17 UTC 2016


This is an automated email from the git hooks/post-receive script.

georg-alioth-guest pushed a commit to tag debian/3.0.0_beta11-1+wip-2
in repository schleuder.

commit 07adc3ee8d241ea11b1f682674349bc56877e52c
Author: Georg Faerber <georg at riseup.net>
Date:   Sat Dec 10 16:49:34 2016 +0100

    debian/schleuder.postinst: Check if fresh install or upgrade
---
 debian/schleuder.postinst | 71 ++++++++++++++++++++++++++++-------------------
 1 file changed, 43 insertions(+), 28 deletions(-)

diff --git a/debian/schleuder.postinst b/debian/schleuder.postinst
index 7d37aae..2442d3d 100644
--- a/debian/schleuder.postinst
+++ b/debian/schleuder.postinst
@@ -4,40 +4,55 @@ set -e
 
 case "$1" in
     configure)
-	# We need to do this because code ordering in 'schleuder install' is wrong currently. 
-        # Upstream is informed, will be resolved and fixed very soon. 
-        touch /var/lib/schleuder/db.sqlite
+	# Fresh installations or upgrades of schleuder (< 3.0).
+	if [ -z "$2" ] || dpkg --compare-versions "$2" lt 3.0; then
+		# We need to do this because code ordering in 'schleuder install' is wrong currently.
+		# Upstream is informed, will be resolved and fixed very soon.
+		touch /var/lib/schleuder/db.sqlite
+	fi
 
-        # 'schleuder install' will set up the database and run migrations.
-        schleuder install >/dev/null
+	# 'schleuder install' will set up the database and/or run migrations.
+	# This needs to be done in any case.
+	schleuder install >/dev/null
+
+	# Fresh installations or upgrades of schleuder (< 3.0).
+	if [ -z "$2" ] || dpkg --compare-versions "$2" lt 3.0; then
+		if ! id schleuder >/dev/null 2>&1; then
+			adduser --system --group --gecos "Schleuder GPG-enabled mailing list manager" \
+				--no-create-home --home /var/lib/schleuder schleuder >/dev/null
+		fi
+
+		# Ensure sane permissions.
+		chown -R schleuder:schleuder /var/lib/schleuder /var/log/schleuder /etc/schleuder
+		chmod -R 750 /var/lib/schleuder /var/log/schleuder /etc/schleuder
+
+		# Enable and start 'schleuder-api-daemon' by default.
+		# We're doing this here manually instead of just relying on debhelper because we need
+		# to set up the database first, see above and 'debian/rules'.
+		deb-systemd-helper enable schleuder-api-daemon.service
+		deb-systemd-invoke restart schleuder-api-daemon.service
+
+		# All done, so let's exit here.
+		exit 0
+	fi
 	
-	if ! id schleuder >/dev/null 2>&1; then
-		adduser --system --group --gecos "Schleuder GPG-enabled mailing list manager" \
-			--no-create-home --home /var/lib/schleuder schleuder >/dev/null
+	# Upgrades of schleuder (>= 3.0).
+	if ! [ -z "$2" ]; then
+		# Only restart 'schleuder-api-daemon' if it is running currently.
+		RUNNING=$(systemctl is-active schleuder-api-daemon.service >/dev/null && echo $?)
+
+		if [ $RUNNING = 0 ]; then
+			deb-systemd-invoke restart schleuder-api-daemon.service
+		fi
 	fi
+	;;
 
-	if ! dpkg-statoverride --list "/var/lib/schleuder"; then
-                chown -R schleuder:schleuder /var/lib/schleuder
-                chmod -R 750 /var/lib/schleuder
-        fi  
-
-        if ! dpkg-statoverride --list "/var/log/schleuder"; then
-                chown -R schleuder:schleuder /var/log/schleuder
-                chmod -R 750 /var/log/schleuder
-        fi          
-
-        if ! dpkg-statoverride --list "/etc/schleuder"; then
-                chown -R schleuder:schleuder /etc/schleuder
-                chmod -R 750 /etc/schleuder
-        fi
-
-	# We're doing this here manually instead of just relying on debhelper because we need 
-	# to set up the database first, see above and 'debian/rules'.
-	deb-systemd-helper enable schleuder-api-daemon.service
-	deb-systemd-invoke restart schleuder-api-daemon.service
+    abort-upgrade|abort-remove|abort-deconfigure)
 	;;
-    
+
     *)
+	echo "postinst called with unknown argument \`$1'" >&2
+	exit 1
 	;;
 esac
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-ruby-extras/schleuder.git



More information about the Pkg-ruby-extras-commits mailing list