From 038280e26ed71facff8675181db4bcd6f8c2e793 Mon Sep 17 00:00:00 2001 From: Eric Nemchik Date: Sat, 17 Jun 2023 21:37:15 -0500 Subject: [PATCH] Add max upgrade check Signed-off-by: Eric Nemchik --- root/etc/s6-overlay/s6-rc.d/init-nextcloud-config/run | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/root/etc/s6-overlay/s6-rc.d/init-nextcloud-config/run b/root/etc/s6-overlay/s6-rc.d/init-nextcloud-config/run index b9153f9..2f7f849 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-nextcloud-config/run +++ b/root/etc/s6-overlay/s6-rc.d/init-nextcloud-config/run @@ -50,6 +50,10 @@ installed_version=$(php -r "require '/config/www/nextcloud/config/config.php'; e if [ "${installed_version}" = "" ]; then installed_version="0.0.0.0" fi +image_major="${image_version%%.*}" +installed_major="${installed_version%%.*}" +max_upgrade= +((max_upgrade=installed_major+1)) # compare versions vergte() { printf '%s\n%s' "${2}" "${1}" | sort -C -V; } @@ -57,6 +61,11 @@ vergt() { ! vergte "${2}" "${1}"; } verlte() { printf '%s\n%s' "${1}" "${2}" | sort -C -V; } verlt() { ! verlte "${2}" "${1}"; } +if [ "${installed_version}" != "0.0.0.0" ] && vergt "${image_version}" "${max_upgrade}"; then + echo "Can't start Nextcloud because the version of the data (${installed_version}) is more than one major version behind the docker image version (${image_version}) and upgrading more than one major version is not supported. Please run an image tagged for the major version ${max_upgrade} first." + sleep infinity +fi + if vergt "${installed_version}" "${image_version}"; then echo "Can't start Nextcloud because the version of the data (${installed_version}) is higher than the docker image version (${image_version}) and downgrading is not supported. Are you sure you have pulled the newest image version?" sleep infinity