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