Fix java version check The version check previously had multiple flaws. The new check should correctly return only the major version number, even for java 8 (identified as "1.8.x"). Change-Id: If774d32b276c5e5e06995c45216adcf1c0f7dd53
diff --git a/fpm/scripts/before-install.sh b/fpm/scripts/before-install.sh index 6c4a1c6..84cd06e 100755 --- a/fpm/scripts/before-install.sh +++ b/fpm/scripts/before-install.sh
@@ -26,9 +26,12 @@ JAVA_VERSION=$(java -version 2>&1) [ $? != 0 ] && echo -e "NOT FOUND\nPlease install Java 21 or later and try again" && exit 2 -VERSION=`expr "$JAVA_VERSION" : '.*"\(21\..*\)["_]'` +if [[ $JAVA_VERSION =~ .*\"(1\.)?([0-9]{1,2})\.[^\"_]+ ]] +then + VERSION="${BASH_REMATCH[2]}" +fi echo "$VERSION" -test "$VERSION" "<" "17" && echo "ERROR: Java 21 or later is required by Gerrit" && exit 3 +test "$VERSION" -lt "21" && echo "ERROR: Java 21 or later is required by Gerrit" && exit 3 # Script is invoked even before upgrade, we need to stop Gerrit if active GERRIT_PID=$(ps -o pid,command -u $USER | grep gerrit | awk '{print $1}')