1
0
mirror of https://gitlab.com/fdroid/fdroidserver.git synced 2024-10-06 11:00:13 +02:00

Merge branch 'improve_gradlew-fdroid' into 'master'

Improve gradlew fdroid

See merge request fdroid/fdroidserver!535
This commit is contained in:
Hans-Christoph Steiner 2018-07-13 16:53:50 +00:00
commit be54f1e82a

View File

@ -17,8 +17,9 @@ run_gradle() {
if [ ! -d "${gradle_version_dir}/${v_found}" ]; then if [ ! -d "${gradle_version_dir}/${v_found}" ]; then
download_gradle ${v_found} download_gradle ${v_found}
fi fi
"${gradle_version_dir}/${v_found}/bin/gradle" "${args[@]}" echo "Running ${gradle_version_dir}/${v_found}/bin/gradle ${args[@]}"
exit $? "${gradle_version_dir}/${v_found}/bin/gradle" "${args[@]}"
exit $?
} }
download_gradle() { download_gradle() {
@ -41,8 +42,8 @@ download_gradle() {
else else
tmpdir=$(mktemp -d) tmpdir=$(mktemp -d)
fi fi
curl -o "${tmpdir}/gradle.zip" --silent --fail --show-error --location "${URL}" curl -o "${tmpdir}/gradle-$1-bin.zip" --silent --fail --show-error --location "${URL}"
gradle_zip="${tmpdir}/gradle.zip" gradle_zip="${tmpdir}/gradle-$1-bin.zip"
fi fi
echo "${shasum} ${gradle_zip}" | sha256sum -c - echo "${shasum} ${gradle_zip}" | sha256sum -c -
if [ $? != 0 ]; then if [ $? != 0 ]; then
@ -111,11 +112,11 @@ get_sha() {
} }
contains() { contains() {
local e local e
for e in $2; do for e in $2; do
[[ $e == $1 ]] && return 0; [[ $e == $1 ]] && return 0;
done done
return 1 return 1
} }
# key-value pairs of what gradle version (value) each gradle plugin version # key-value pairs of what gradle version (value) each gradle plugin version
@ -132,66 +133,66 @@ v_all=${plugin_v[@]}
# Earliest takes priority # Earliest takes priority
for f in {.,..}/gradle/wrapper/gradle-wrapper.properties; do for f in {.,..}/gradle/wrapper/gradle-wrapper.properties; do
[[ -f $f ]] || continue [[ -f $f ]] || continue
while read l; do while read l; do
if [[ $l == 'distributionUrl='* ]]; then if [[ $l == 'distributionUrl='* ]]; then
wrapper_ver=$(echo -n "$l" | sed "s/.*gradle-\\([0-9\\.\\+]\\+\\).*/\\1/") wrapper_ver=$(echo -n "$l" | sed "s/.*gradle-\\([0-9\\.\\+]\\+\\).*/\\1/")
fi fi
done < $f done < $f
done done
if [[ -n $wrapper_ver ]]; then if [[ -n $wrapper_ver ]]; then
v_found=$wrapper_ver v_found=$wrapper_ver
echo "Found $v_found via distributionUrl" echo "Found $v_found via distributionUrl"
run_gradle run_gradle
fi fi
# Earliest takes priority # Earliest takes priority
for f in {.,..}/build.gradle; do for f in {.,..}/build.gradle; do
[[ -f $f ]] || continue [[ -f $f ]] || continue
while read l; do while read l; do
if [[ -z "$plugin_pver" && $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/") plugin_pver=$(echo -n "$l" | sed "s/.*com.android.tools.build:gradle:\\([0-9\\.\\+]\\+\\).*/\\1/")
elif [[ -z "$wrapper_ver" && $l == *'gradleVersion = '* ]]; then elif [[ -z "$wrapper_ver" && $l == *'gradleVersion = '* ]]; then
wrapper_ver=$(echo -n "$l" | sed "s/.*gradleVersion *=* *[\"']\\([0-9\\.]\\+\\)[\"'].*/\\1/") wrapper_ver=$(echo -n "$l" | sed "s/.*gradleVersion *=* *[\"']\\([0-9\\.]\\+\\)[\"'].*/\\1/")
fi fi
done < $f done < $f
done done
if [[ -n $wrapper_ver ]]; then if [[ -n $wrapper_ver ]]; then
v_found=$wrapper_ver v_found=$wrapper_ver
echo "Found $v_found via gradleVersion" echo "Found $v_found via gradleVersion"
run_gradle run_gradle
fi fi
if [[ -n $plugin_pver ]]; then if [[ -n $plugin_pver ]]; then
i=0 i=0
match=false match=false
for k in ${d_plugin_k[@]}; do for k in ${d_plugin_k[@]}; do
if [[ $plugin_pver == ${k}* ]]; then if [[ $plugin_pver == ${k}* ]]; then
plugin_ver=${d_plugin_v[$i]} plugin_ver=${d_plugin_v[$i]}
match=true match=true
break break
fi fi
let i++ let i++
done done
if $match; then if $match; then
v_found=$plugin_ver v_found=$plugin_ver
echo "Found $v_found via gradle plugin version $k" echo "Found $v_found via gradle plugin version $k"
fi fi
fi fi
# Find the highest version available # Find the highest version available
for v in ${plugin_v[*]}; do for v in ${plugin_v[*]}; do
if contains $v "${v_all[*]}"; then if contains $v "${v_all[*]}"; then
v_def=$v v_def=$v
break break
fi fi
done done
if [[ -z $v_found ]]; then if [[ -z $v_found ]]; then
echo "No suitable gradle version found - defaulting to $v_def" echo "No suitable gradle version found - defaulting to $v_def"
v_found=$v_def v_found=$v_def
fi fi
run_gradle run_gradle