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