chiark / gitweb /
Move gradle script to separate file, install it properly
authorDaniel Martí <mvdan@mvdan.cc>
Fri, 10 Jan 2014 19:10:20 +0000 (20:10 +0100)
committerDaniel Martí <mvdan@mvdan.cc>
Fri, 10 Jan 2014 19:12:24 +0000 (20:12 +0100)
buildserver/cookbooks/gradle/recipes/default.rb
buildserver/cookbooks/gradle/recipes/gradle [new file with mode: 0755]

index 89f5144c6c357858d7f4b94de98b0b0661e859d5..b13e397e61e8b32145a3e98a6c069befb9cc82c3 100644 (file)
@@ -1,6 +1,9 @@
 
 user = node[:settings][:user]
 
+gradle_script = IO.read(File.join(
+       File.expand_path(File.dirname(__FILE__)), "gradle"))
+
 script "add-gradle-bindir" do
   cwd "/tmp"
   interpreter "bash"
@@ -30,78 +33,12 @@ end
 script "add-gradle-wrapper" do
   cwd "/tmp"
   interpreter "bash"
-  code %{cat << EOF > /opt/gradle/bin/gradle
-#!/bin/bash
-
-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]}
-echo "Available gradle versions: ${v_all[@]}"
-
-popd &>/dev/null
-
-run_gradle() {
-       ${verdir}/${v_found}/bin/gradle "${args[@]}"
-       exit $?
-}
-
-# 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)
-
-# Latest takes priority
-files=(build.gradle)
-
-for f in ${files[@]}; do
-       [[ -f $f ]] || continue
-       while read l; do
-               if [[ "$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/")
-               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
-
-[[ -n $v_found ]] && run_gradle
-
-echo "No suitable gradle version found - defaulting to $v_def"
-v_found=$v_def
-run_gradle
-
+  code "
+    cat << \"EOF\" > /opt/gradle/bin/gradle
+#{gradle_script}
 EOF
-  }
+    chmod a+x /opt/gradle/bin/gradle
+  "
 end
 
 execute "add-android-ndk-path" do
diff --git a/buildserver/cookbooks/gradle/recipes/gradle b/buildserver/cookbooks/gradle/recipes/gradle
new file mode 100755 (executable)
index 0000000..652de58
--- /dev/null
@@ -0,0 +1,68 @@
+#!/bin/bash
+
+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]}
+echo "Available gradle versions: ${v_all[@]}"
+
+popd &>/dev/null
+
+run_gradle() {
+       ${verdir}/${v_found}/bin/gradle "${args[@]}"
+       exit $?
+}
+
+# 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)
+
+# Latest takes priority
+files=(build.gradle)
+
+for f in ${files[@]}; do
+       [[ -f $f ]] || continue
+       while read l; do
+               if [[ $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/")
+               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
+
+[[ -n $v_found ]] && run_gradle
+
+echo No suitable gradle version found - defaulting to $v_def
+v_found=$v_def
+run_gradle