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