summaryrefslogtreecommitdiff
path: root/debian/python-django-ishtar.postinst
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2020-01-03 12:02:07 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2023-01-09 18:05:35 +0100
commit40683c4dfd699ead8a24edec6a23d10f21a57363 (patch)
treec7c7cc1bb47225d05014fa1898e8a7f725050bc5 /debian/python-django-ishtar.postinst
parent8d92375ac7cc8ee2eee92fe2b38099fca2b301b8 (diff)
downloadIshtar-40683c4dfd699ead8a24edec6a23d10f21a57363.tar.bz2
Ishtar-40683c4dfd699ead8a24edec6a23d10f21a57363.zip
Pick debian change from wheezy branch
Diffstat (limited to 'debian/python-django-ishtar.postinst')
-rw-r--r--debian/python-django-ishtar.postinst70
1 files changed, 70 insertions, 0 deletions
diff --git a/debian/python-django-ishtar.postinst b/debian/python-django-ishtar.postinst
new file mode 100644
index 000000000..5efd25548
--- /dev/null
+++ b/debian/python-django-ishtar.postinst
@@ -0,0 +1,70 @@
+#!/bin/sh
+
+set -e
+set -x
+
+DATA_DIR=/var/lib/python-django-ishtar
+INSTANCES_FILE=$DATA_DIR/INSTANCES
+
+case "$1" in
+ configure)
+ instances="$( (cat $INSTANCES_FILE 2>/dev/null || true) | xargs )"
+ if [ -n "$instances" ]; then
+ echo "updading instances found in $INSTANCES_FILE: $instances"
+ for instance in $instances; do
+ # The upgrade procedure below was built from the "update"
+ # target and its dependencies in the upstream Makefile:
+ echo "updating $instance"
+ cd $DATA_DIR/$instance
+
+ # from "syncdb" target:
+ python manage.py syncdb --noinput
+ python manage.py migrate
+
+ # from "compilemessages" target:
+ #
+ # NOTE: Instead of hardcoding an "apps" variable here, let's
+ # look at candidates with find, and check whether each of
+ # them indeed contains PO files as a second check:
+ maybe_localized=$(cd $DATA_DIR; find -maxdepth 2 -name 'locale')
+ for candidate in $maybe_localized; do
+ if find $DATA_DIR/$candidate -name '*.po' >/dev/null 2>&1; then
+ # Really looks like a valid app, let's strip the last
+ # directory, cd into it, and compile messages using
+ # the instance's manage.py script:
+ app=${candidate%%/locale}
+ (cd $DATA_DIR/$app; python $DATA_DIR/$instance/manage.py compilemessages)
+ fi
+ done
+ # XXX: Doing this only once is likely sufficient, so
+ # we could remember having performed that update while
+ # taking care of the first instance, to avoid
+ # extraneous reruns?
+
+ # from "collectstatic" target:
+ python manage.py collectstatic --noinput
+
+ echo "updating $instance: OK"
+ done
+ echo "updating all instances: OK"
+
+ # the assumption is that nginx and uwsgi were configured
+ # through ishtar-prepare-instance, so let's restart them
+ # unconditionally:
+ invoke-rc.d uwsgi restart
+ invoke-rc.d nginx restart
+ echo "restarting uwsgi and nginx: OK"
+ else
+ echo "found no instances to upgrade in $INSTANCES_FILE"
+ fi
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac