summaryrefslogtreecommitdiffstats
path: root/docker-entrypoint.sh
diff options
context:
space:
mode:
authorTilo Spannagel <development@tilosp.de>2017-04-17 22:49:53 +0200
committerTilo Spannagel <development@tilosp.de>2017-04-17 22:49:53 +0200
commit8f2bc6bec71b16833c4b6570a6c607aec63593b1 (patch)
tree31518d6d7f26a9e7cc119fbab80c0db956a990c8 /docker-entrypoint.sh
parentdb148abc5a5804ad82f214cb6e64950c5816639f (diff)
add version comparison
Diffstat (limited to 'docker-entrypoint.sh')
-rwxr-xr-xdocker-entrypoint.sh18
1 files changed, 17 insertions, 1 deletions
diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh
index 62d16254..3dc4a327 100755
--- a/docker-entrypoint.sh
+++ b/docker-entrypoint.sh
@@ -1,7 +1,23 @@
#!/bin/bash
set -e
-if [ ! -e '/var/www/html/version.php' ]; then
+# version_greater A B returns whether A > B
+function version_greater() {
+ [[ "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1" ]];
+}
+
+installed_version="0.0.0~unknown"
+if [ -f /var/www/html/version.php ]; then
+ installed_version=$(php -r 'require "/var/www/html/version.php"; echo "$OC_VersionString";')
+fi
+image_version=$(php -r 'require "/usr/src/nextcloud/version.php"; echo "$OC_VersionString";')
+
+if version_greater "$installed_version" "$image_version"; then
+ echo "Downgrade not supported"
+ exit 1
+fi
+
+if version_greater "$image_version" "$installed_version"; then
tar cf - --one-file-system -C /usr/src/nextcloud . | tar xf -
chown -R www-data /var/www/html
fi