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