diff --git a/10.0/apache/docker-entrypoint.sh b/10.0/apache/docker-entrypoint.sh index 62d1625..3dc4a32 100755 --- a/10.0/apache/docker-entrypoint.sh +++ b/10.0/apache/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 diff --git a/10.0/fpm/docker-entrypoint.sh b/10.0/fpm/docker-entrypoint.sh index 62d1625..3dc4a32 100755 --- a/10.0/fpm/docker-entrypoint.sh +++ b/10.0/fpm/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 diff --git a/11.0/apache/docker-entrypoint.sh b/11.0/apache/docker-entrypoint.sh index 62d1625..3dc4a32 100755 --- a/11.0/apache/docker-entrypoint.sh +++ b/11.0/apache/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 diff --git a/11.0/fpm/docker-entrypoint.sh b/11.0/fpm/docker-entrypoint.sh index 62d1625..3dc4a32 100755 --- a/11.0/fpm/docker-entrypoint.sh +++ b/11.0/fpm/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 diff --git a/9.0/apache/docker-entrypoint.sh b/9.0/apache/docker-entrypoint.sh index 62d1625..3dc4a32 100755 --- a/9.0/apache/docker-entrypoint.sh +++ b/9.0/apache/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 diff --git a/9.0/fpm/docker-entrypoint.sh b/9.0/fpm/docker-entrypoint.sh index 62d1625..3dc4a32 100755 --- a/9.0/fpm/docker-entrypoint.sh +++ b/9.0/fpm/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 diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index 62d1625..3dc4a32 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