chiark / gitweb /
Move gradle script to separate file, install it properly
[fdroidserver.git] / buildserver / cookbooks / gradle / recipes / gradle
1 #!/bin/bash
2
3 bindir="$(dirname $0)"
4 basedir="$(dirname $bindir)"
5 verdir="${basedir}/versions"
6 args=("$@")
7 pushd "${verdir}" &>/dev/null
8
9 v_all=(*/)
10 v_all=(${v_all[@]%/})
11
12 v_def=${v_all[-1]}
13 echo "Available gradle versions: ${v_all[@]}"
14
15 popd &>/dev/null
16
17 run_gradle() {
18         ${verdir}/${v_found}/bin/gradle "${args[@]}"
19         exit $?
20 }
21
22 # key-value pairs of what gradle version each gradle plugin version
23 # should accept
24 d_plugin_k=(0.7 0.6 0.5 0.4 0.3 0.2)
25 d_plugin_v=(1.9 1.8 1.6 1.6 1.4 1.4)
26
27 # Latest takes priority
28 files=(build.gradle)
29
30 for f in ${files[@]}; do
31         [[ -f $f ]] || continue
32         while read l; do
33                 if [[ $l == *'com.android.tools.build:gradle:'* ]]; then
34                         plugin_pver=$(echo -n "$l" | sed "s/.*com.android.tools.build:gradle:\\([0-9\\.\\+]\\+\\).*/\\1/")
35                 elif [[ $l == *'gradleVersion'* ]]; then
36                         wrapper_ver=$(echo -n "$l" | sed "s/.*gradleVersion[ ]*=[ ]*[\"']\\([0-9\\.]\\+\\)[\"'].*/\\1/")
37                 fi
38         done < $f
39 done
40
41 if [[ -n $wrapper_ver ]]; then
42         v_found=$wrapper_ver
43         echo Found $v_found via gradleVersion
44         run_gradle
45 fi
46
47 if [[ -n $plugin_pver ]]; then
48         i=0
49         match=false
50         for k in ${d_plugin_k[@]}; do
51                 if [[ $plugin_pver == ${k}* ]]; then
52                         plugin_ver=${d_plugin_v[$i]}
53                         match=true
54                         break
55                 fi
56                 let i++
57         done
58         if $match; then
59                 v_found=$plugin_ver
60                 echo Found $v_found via gradle plugin version $k
61         fi
62 fi
63
64 [[ -n $v_found ]] && run_gradle
65
66 echo No suitable gradle version found - defaulting to $v_def
67 v_found=$v_def
68 run_gradle