10f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet#!/usr/bin/env bash 20f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet 30f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet############################################################################## 40f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet## 50f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet## Gradle start up script for UN*X 60f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet## 70f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet############################################################################## 80f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet 90f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 100f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier DucrohetDEFAULT_JVM_OPTS="" 110f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet 120f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier DucrohetAPP_NAME="Gradle" 130f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier DucrohetAPP_BASE_NAME=`basename "$0"` 140f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet 150f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet# Use the maximum available, or set MAX_FD != -1 to use that value. 160f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier DucrohetMAX_FD="maximum" 170f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet 180f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohetwarn ( ) { 190f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet echo "$*" 200f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet} 210f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet 220f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohetdie ( ) { 230f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet echo 240f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet echo "$*" 250f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet echo 260f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet exit 1 270f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet} 280f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet 290f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet# OS specific support (must be 'true' or 'false'). 300f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohetcygwin=false 310f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohetmsys=false 320f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohetdarwin=false 330f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohetcase "`uname`" in 340f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet CYGWIN* ) 350f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet cygwin=true 360f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet ;; 370f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet Darwin* ) 380f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet darwin=true 390f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet ;; 400f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet MINGW* ) 410f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet msys=true 420f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet ;; 430f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohetesac 440f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet 450f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet# For Cygwin, ensure paths are in UNIX format before anything is touched. 460f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohetif $cygwin ; then 470f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` 480f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohetfi 490f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet 500f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet# Attempt to set APP_HOME 510f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet# Resolve links: $0 may be a link 520f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier DucrohetPRG="$0" 530f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet# Need this for relative symlinks. 540f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohetwhile [ -h "$PRG" ] ; do 550f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet ls=`ls -ld "$PRG"` 560f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet link=`expr "$ls" : '.*-> \(.*\)$'` 570f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet if expr "$link" : '/.*' > /dev/null; then 580f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet PRG="$link" 590f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet else 600f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet PRG=`dirname "$PRG"`"/$link" 610f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet fi 620f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohetdone 630f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier DucrohetSAVED="`pwd`" 640f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohetcd "`dirname \"$PRG\"`/" >&- 650f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier DucrohetAPP_HOME="`pwd -P`" 660f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohetcd "$SAVED" >&- 670f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet 680f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier DucrohetCLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar 690f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet 700f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet# Determine the Java command to use to start the JVM. 710f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohetif [ -n "$JAVA_HOME" ] ; then 720f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 730f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet # IBM's JDK on AIX uses strange locations for the executables 740f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet JAVACMD="$JAVA_HOME/jre/sh/java" 750f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet else 760f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet JAVACMD="$JAVA_HOME/bin/java" 770f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet fi 780f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet if [ ! -x "$JAVACMD" ] ; then 790f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME 800f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet 810f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier DucrohetPlease set the JAVA_HOME variable in your environment to match the 820f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohetlocation of your Java installation." 830f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet fi 840f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohetelse 850f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet JAVACMD="java" 860f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 870f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet 880f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier DucrohetPlease set the JAVA_HOME variable in your environment to match the 890f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohetlocation of your Java installation." 900f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohetfi 910f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet 920f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet# Increase the maximum file descriptors if we can. 930f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohetif [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then 940f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet MAX_FD_LIMIT=`ulimit -H -n` 950f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet if [ $? -eq 0 ] ; then 960f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then 970f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet MAX_FD="$MAX_FD_LIMIT" 980f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet fi 990f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet ulimit -n $MAX_FD 1000f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet if [ $? -ne 0 ] ; then 1010f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet warn "Could not set maximum file descriptor limit: $MAX_FD" 1020f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet fi 1030f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet else 1040f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" 1050f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet fi 1060f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohetfi 1070f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet 1080f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet# For Darwin, add options to specify how the application appears in the dock 1090f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohetif $darwin; then 1100f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" 1110f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohetfi 1120f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet 1130f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet# For Cygwin, switch paths to Windows format before running java 1140f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohetif $cygwin ; then 1150f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet APP_HOME=`cygpath --path --mixed "$APP_HOME"` 1160f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` 1170f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet 1180f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet # We build the pattern for arguments to be converted via cygpath 1190f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` 1200f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet SEP="" 1210f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet for dir in $ROOTDIRSRAW ; do 1220f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet ROOTDIRS="$ROOTDIRS$SEP$dir" 1230f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet SEP="|" 1240f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet done 1250f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet OURCYGPATTERN="(^($ROOTDIRS))" 1260f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet # Add a user-defined pattern to the cygpath arguments 1270f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet if [ "$GRADLE_CYGPATTERN" != "" ] ; then 1280f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" 1290f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet fi 1300f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet # Now convert the arguments - kludge to limit ourselves to /bin/sh 1310f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet i=0 1320f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet for arg in "$@" ; do 1330f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` 1340f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option 1350f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet 1360f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition 1370f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` 1380f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet else 1390f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet eval `echo args$i`="\"$arg\"" 1400f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet fi 1410f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet i=$((i+1)) 1420f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet done 1430f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet case $i in 1440f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet (0) set -- ;; 1450f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet (1) set -- "$args0" ;; 1460f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet (2) set -- "$args0" "$args1" ;; 1470f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet (3) set -- "$args0" "$args1" "$args2" ;; 1480f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet (4) set -- "$args0" "$args1" "$args2" "$args3" ;; 1490f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; 1500f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; 1510f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; 1520f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; 1530f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; 1540f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet esac 1550f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohetfi 1560f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet 1570f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules 1580f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohetfunction splitJvmOpts() { 1590f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet JVM_OPTS=("$@") 1600f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet} 1610f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducroheteval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS 1620f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier DucrohetJVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" 1630f3d903942978b7a4f2f91d6bfc72d3876689cbeXavier Ducrohet 1640451867ab21b4fd8d11c37fd774a4cee1ffeb0ffXavier Ducrohet# Change the project's .gradle to the android out dir. 1650451867ab21b4fd8d11c37fd774a4cee1ffeb0ffXavier DucrohetANDROID_GRADLE_ROOT="$APP_HOME/../../out/host/gradle/frameworks/support" 1660451867ab21b4fd8d11c37fd774a4cee1ffeb0ffXavier Ducrohetif [[ -z "$ANDROID_CACHE_DIR" ]]; then 1670451867ab21b4fd8d11c37fd774a4cee1ffeb0ffXavier Ducrohet ANDROID_CACHE_DIR="$ANDROID_GRADLE_ROOT/.gradle" 1680451867ab21b4fd8d11c37fd774a4cee1ffeb0ffXavier Ducrohetfi 1690451867ab21b4fd8d11c37fd774a4cee1ffeb0ffXavier Ducrohet 1700451867ab21b4fd8d11c37fd774a4cee1ffeb0ffXavier Ducrohet# Change the local user directories to be under the android out dir 1710451867ab21b4fd8d11c37fd774a4cee1ffeb0ffXavier Ducrohetexport GRADLE_USER_HOME="$ANDROID_GRADLE_ROOT/.gradle" 1720451867ab21b4fd8d11c37fd774a4cee1ffeb0ffXavier Ducrohetexport M2_HOME="$ANDROID_GRADLE_ROOT/.m2" 1730451867ab21b4fd8d11c37fd774a4cee1ffeb0ffXavier Ducrohet 1740451867ab21b4fd8d11c37fd774a4cee1ffeb0ffXavier Ducrohetexec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain --project-cache-dir=$ANDROID_CACHE_DIR "$@" 175