• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/usr/bin/env sh
2
3##############################################################################
4##
5##  Gradle start up script for UN*X
6##
7##############################################################################
8
9# Attempt to set APP_HOME
10# Resolve links: $0 may be a link
11PRG="$0"
12# Need this for relative symlinks.
13while [ -h "$PRG" ]; do
14  ls=$(ls -ld "$PRG")
15  link=$(expr "$ls" : '.*-> \(.*\)$')
16  if expr "$link" : '/.*' >/dev/null; then
17    PRG="$link"
18  else
19    PRG=$(dirname "$PRG")"/$link"
20  fi
21done
22SAVED="$(pwd)"
23cd "$(dirname \"$PRG\")/" >/dev/null
24APP_HOME="$(pwd -P)"
25cd "$SAVED" >/dev/null
26
27APP_NAME="Gradle"
28APP_BASE_NAME=$(basename "$0")
29
30# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
31DEFAULT_JVM_OPTS=""
32
33# Use the maximum available, or set MAX_FD != -1 to use that value.
34MAX_FD="maximum"
35
36warn() {
37  echo "$*"
38}
39
40die() {
41  echo
42  echo "$*"
43  echo
44  exit 1
45}
46
47# OS specific support (must be 'true' or 'false').
48cygwin=false
49msys=false
50darwin=false
51nonstop=false
52case "$(uname)" in
53CYGWIN*)
54  cygwin=true
55  ;;
56Darwin*)
57  darwin=true
58  ;;
59MINGW*)
60  msys=true
61  ;;
62NONSTOP*)
63  nonstop=true
64  ;;
65esac
66
67CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
68
69# Determine the Java command to use to start the JVM.
70if [ -n "$JAVA_HOME" ]; then
71  if [ -x "$JAVA_HOME/jre/sh/java" ]; then
72    # IBM's JDK on AIX uses strange locations for the executables
73    JAVACMD="$JAVA_HOME/jre/sh/java"
74  else
75    JAVACMD="$JAVA_HOME/bin/java"
76  fi
77  if [ ! -x "$JAVACMD" ]; then
78    die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
79
80Please set the JAVA_HOME variable in your environment to match the
81location of your Java installation."
82  fi
83else
84  JAVACMD="java"
85  which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
86
87Please set the JAVA_HOME variable in your environment to match the
88location of your Java installation."
89fi
90
91# Increase the maximum file descriptors if we can.
92if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ]; then
93  MAX_FD_LIMIT=$(ulimit -H -n)
94  if [ $? -eq 0 ]; then
95    if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ]; then
96      MAX_FD="$MAX_FD_LIMIT"
97    fi
98    ulimit -n $MAX_FD
99    if [ $? -ne 0 ]; then
100      warn "Could not set maximum file descriptor limit: $MAX_FD"
101    fi
102  else
103    warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
104  fi
105fi
106
107# For Darwin, add options to specify how the application appears in the dock
108if $darwin; then
109  GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
110fi
111
112# For Cygwin, switch paths to Windows format before running java
113if $cygwin; then
114  APP_HOME=$(cygpath --path --mixed "$APP_HOME")
115  CLASSPATH=$(cygpath --path --mixed "$CLASSPATH")
116  JAVACMD=$(cygpath --unix "$JAVACMD")
117
118  # We build the pattern for arguments to be converted via cygpath
119  ROOTDIRSRAW=$(find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null)
120  SEP=""
121  for dir in $ROOTDIRSRAW; do
122    ROOTDIRS="$ROOTDIRS$SEP$dir"
123    SEP="|"
124  done
125  OURCYGPATTERN="(^($ROOTDIRS))"
126  # Add a user-defined pattern to the cygpath arguments
127  if [ "$GRADLE_CYGPATTERN" != "" ]; then
128    OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
129  fi
130  # Now convert the arguments - kludge to limit ourselves to /bin/sh
131  i=0
132  for arg in "$@"; do
133    CHECK=$(echo "$arg" | egrep -c "$OURCYGPATTERN" -)
134    CHECK2=$(echo "$arg" | egrep -c "^-") ### Determine if an option
135
136    if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ]; then ### Added a condition
137      eval $(echo args$i)=$(cygpath --path --ignore --mixed "$arg")
138    else
139      eval $(echo args$i)="\"$arg\""
140    fi
141    i=$((i + 1))
142  done
143  case $i in
144  0) set -- ;;
145  1) set -- "$args0" ;;
146  2) set -- "$args0" "$args1" ;;
147  3) set -- "$args0" "$args1" "$args2" ;;
148  4) set -- "$args0" "$args1" "$args2" "$args3" ;;
149  5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
150  6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
151  7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
152  8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
153  9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
154  esac
155fi
156
157# Escape application args
158save() {
159  for i; do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/"; done
160  echo " "
161}
162APP_ARGS=$(save "$@")
163
164# Collect all arguments for the java command, following the shell quoting and substitution rules
165eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
166
167# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
168if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
169  cd "$(dirname "$0")"
170fi
171
172exec "$JAVACMD" "$@"
173