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.8 0.7 0.6 0.5 0.4 0.3 0.2)
-d_plugin_v=(1.10 1.9 1.8 1.6 1.6 1.4 1.4)
+d_plugin_k=(1.5 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.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 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
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