chiark / gitweb /
Add Gradle 2.10 to the BS
[fdroidserver.git] / buildserver / cookbooks / gradle / recipes / gradle
index 652de5866359b4abfc6f0050da740256e8a05591..61d6f52d9be84205192cd808e8bf6d45a9d36c04 100755 (executable)
@@ -4,43 +4,54 @@ bindir="$(dirname $0)"
 basedir="$(dirname $bindir)"
 verdir="${basedir}/versions"
 args=("$@")
-pushd "${verdir}" &>/dev/null
 
-v_all=(*/)
-v_all=(${v_all[@]%/})
-
-v_def=${v_all[-1]}
+v_all=($(cd "${verdir}" && ls | sort -rV))
 echo "Available gradle versions: ${v_all[@]}"
 
-popd &>/dev/null
-
 run_gradle() {
-       ${verdir}/${v_found}/bin/gradle "${args[@]}"
+       "${verdir}/${v_found}/bin/gradle" "${args[@]}"
        exit $?
 }
 
+contains() {
+       local e
+       for e in $2; do
+               [[ $e == $1 ]] && return 0;
+       done
+       return 1
+}
+
 # key-value pairs of what gradle version each gradle plugin version
 # should accept
-d_plugin_k=(0.7 0.6 0.5 0.4 0.3 0.2)
-d_plugin_v=(1.9 1.8 1.6 1.6 1.4 1.4)
+d_plugin_k=(1.3 1.2   1.1   1.0 0.14 0.13 0.12 0.11 0.10  0.9  0.8 0.7 0.6 0.5 0.4 0.3 0.2)
+d_plugin_v=(2.4 2.3 2.2.1 2.2.1  2.1  2.1 1.12 1.12 1.12 1.11 1.10 1.9 1.8 1.6 1.6 1.4 1.4)
 
-# Latest takes priority
-files=(build.gradle)
+# All gradle versions we know about
+plugin_v=(2.10 2.9 2.8 2.7 2.6 2.5 2.4 2.3 2.2.1 2.1 1.12 1.11 1.10 1.9 1.8 1.7 1.6 1.4)
 
-for f in ${files[@]}; do
+# Find the highest version available
+for v in ${plugin_v[*]}; do
+       if contains $v "${v_all[*]}"; then
+               v_def=$v
+               break
+       fi
+done
+
+# Earliest takes priority
+for f in build.gradle ../build.gradle; do
        [[ -f $f ]] || continue
        while read l; do
-               if [[ $l == *'com.android.tools.build:gradle:'* ]]; then
+               if [[ -z "$plugin_pver" && $l == *'com.android.tools.build:gradle:'* ]]; then
                        plugin_pver=$(echo -n "$l" | sed "s/.*com.android.tools.build:gradle:\\([0-9\\.\\+]\\+\\).*/\\1/")
-               elif [[ $l == *'gradleVersion'* ]]; then
-                       wrapper_ver=$(echo -n "$l" | sed "s/.*gradleVersion[ ]*=[ ]*[\"']\\([0-9\\.]\\+\\)[\"'].*/\\1/")
+               elif [[ -z "$wrapper_ver" && $l == *'gradleVersion = '* ]]; then
+                       wrapper_ver=$(echo -n "$l" | sed "s/.*gradleVersion *=* *[\"']\\([0-9\\.]\\+\\)[\"'].*/\\1/")
                fi
        done < $f
 done
 
 if [[ -n $wrapper_ver ]]; then
        v_found=$wrapper_ver
-       echo Found $v_found via gradleVersion
+       echo "Found $v_found via gradleVersion"
        run_gradle
 fi
 
@@ -57,12 +68,13 @@ if [[ -n $plugin_pver ]]; then
        done
        if $match; then
                v_found=$plugin_ver
-               echo Found $v_found via gradle plugin version $k
+               echo "Found $v_found via gradle plugin version $k"
        fi
 fi
 
-[[ -n $v_found ]] && run_gradle
+if [[ -z $v_found ]]; then
+       echo "No suitable gradle version found - defaulting to $v_def"
+       v_found=$v_def
+fi
 
-echo No suitable gradle version found - defaulting to $v_def
-v_found=$v_def
 run_gradle