mirror of
https://gitlab.com/fdroid/fdroidserver.git
synced 2024-11-04 22:40:12 +01:00
be4953be02
2.2 can be specifically requested by an app, and in some extreme cases those apps don't build with 2.2.1.
81 lines
1.9 KiB
Bash
Executable File
81 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
bindir="$(dirname $0)"
|
|
basedir="$(dirname $bindir)"
|
|
verdir="${basedir}/versions"
|
|
args=("$@")
|
|
|
|
v_all=($(cd "${verdir}" && ls | sort -rV))
|
|
echo "Available gradle versions: ${v_all[@]}"
|
|
|
|
run_gradle() {
|
|
"${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=( 2.1 2.0 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.12 2.12 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)
|
|
|
|
# All gradle versions we know about
|
|
plugin_v=(2.14 2.13 2.12 2.11 2.10 2.9 2.8 2.7 2.6 2.5 2.4 2.3 2.2.1 2.2 2.1 1.12 1.11 1.10 1.9 1.8 1.7 1.6 1.4)
|
|
|
|
# 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 [[ -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 [[ -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"
|
|
run_gradle
|
|
fi
|
|
|
|
if [[ -n $plugin_pver ]]; then
|
|
i=0
|
|
match=false
|
|
for k in ${d_plugin_k[@]}; do
|
|
if [[ $plugin_pver == ${k}* ]]; then
|
|
plugin_ver=${d_plugin_v[$i]}
|
|
match=true
|
|
break
|
|
fi
|
|
let i++
|
|
done
|
|
if $match; then
|
|
v_found=$plugin_ver
|
|
echo "Found $v_found via gradle plugin version $k"
|
|
fi
|
|
fi
|
|
|
|
if [[ -z $v_found ]]; then
|
|
echo "No suitable gradle version found - defaulting to $v_def"
|
|
v_found=$v_def
|
|
fi
|
|
|
|
run_gradle
|