xref: /aosp_15_r20/external/dagger2/java/dagger/example/atm/gradlew (revision f585d8a307d0621d6060bd7e80091fdcbf94fe27)
1*f585d8a3SJacky Wang#!/usr/bin/env sh
2*f585d8a3SJacky Wang
3*f585d8a3SJacky Wang#
4*f585d8a3SJacky Wang# Copyright 2015 the original author or authors.
5*f585d8a3SJacky Wang#
6*f585d8a3SJacky Wang# Licensed under the Apache License, Version 2.0 (the "License");
7*f585d8a3SJacky Wang# you may not use this file except in compliance with the License.
8*f585d8a3SJacky Wang# You may obtain a copy of the License at
9*f585d8a3SJacky Wang#
10*f585d8a3SJacky Wang#      http://www.apache.org/licenses/LICENSE-2.0
11*f585d8a3SJacky Wang#
12*f585d8a3SJacky Wang# Unless required by applicable law or agreed to in writing, software
13*f585d8a3SJacky Wang# distributed under the License is distributed on an "AS IS" BASIS,
14*f585d8a3SJacky Wang# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15*f585d8a3SJacky Wang# See the License for the specific language governing permissions and
16*f585d8a3SJacky Wang# limitations under the License.
17*f585d8a3SJacky Wang#
18*f585d8a3SJacky Wang
19*f585d8a3SJacky Wang##############################################################################
20*f585d8a3SJacky Wang##
21*f585d8a3SJacky Wang##  Gradle start up script for UN*X
22*f585d8a3SJacky Wang##
23*f585d8a3SJacky Wang##############################################################################
24*f585d8a3SJacky Wang
25*f585d8a3SJacky Wang# Attempt to set APP_HOME
26*f585d8a3SJacky Wang# Resolve links: $0 may be a link
27*f585d8a3SJacky WangPRG="$0"
28*f585d8a3SJacky Wang# Need this for relative symlinks.
29*f585d8a3SJacky Wangwhile [ -h "$PRG" ] ; do
30*f585d8a3SJacky Wang    ls=`ls -ld "$PRG"`
31*f585d8a3SJacky Wang    link=`expr "$ls" : '.*-> \(.*\)$'`
32*f585d8a3SJacky Wang    if expr "$link" : '/.*' > /dev/null; then
33*f585d8a3SJacky Wang        PRG="$link"
34*f585d8a3SJacky Wang    else
35*f585d8a3SJacky Wang        PRG=`dirname "$PRG"`"/$link"
36*f585d8a3SJacky Wang    fi
37*f585d8a3SJacky Wangdone
38*f585d8a3SJacky WangSAVED="`pwd`"
39*f585d8a3SJacky Wangcd "`dirname \"$PRG\"`/" >/dev/null
40*f585d8a3SJacky WangAPP_HOME="`pwd -P`"
41*f585d8a3SJacky Wangcd "$SAVED" >/dev/null
42*f585d8a3SJacky Wang
43*f585d8a3SJacky WangAPP_NAME="Gradle"
44*f585d8a3SJacky WangAPP_BASE_NAME=`basename "$0"`
45*f585d8a3SJacky Wang
46*f585d8a3SJacky Wang# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
47*f585d8a3SJacky WangDEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
48*f585d8a3SJacky Wang
49*f585d8a3SJacky Wang# Use the maximum available, or set MAX_FD != -1 to use that value.
50*f585d8a3SJacky WangMAX_FD="maximum"
51*f585d8a3SJacky Wang
52*f585d8a3SJacky Wangwarn () {
53*f585d8a3SJacky Wang    echo "$*"
54*f585d8a3SJacky Wang}
55*f585d8a3SJacky Wang
56*f585d8a3SJacky Wangdie () {
57*f585d8a3SJacky Wang    echo
58*f585d8a3SJacky Wang    echo "$*"
59*f585d8a3SJacky Wang    echo
60*f585d8a3SJacky Wang    exit 1
61*f585d8a3SJacky Wang}
62*f585d8a3SJacky Wang
63*f585d8a3SJacky Wang# OS specific support (must be 'true' or 'false').
64*f585d8a3SJacky Wangcygwin=false
65*f585d8a3SJacky Wangmsys=false
66*f585d8a3SJacky Wangdarwin=false
67*f585d8a3SJacky Wangnonstop=false
68*f585d8a3SJacky Wangcase "`uname`" in
69*f585d8a3SJacky Wang  CYGWIN* )
70*f585d8a3SJacky Wang    cygwin=true
71*f585d8a3SJacky Wang    ;;
72*f585d8a3SJacky Wang  Darwin* )
73*f585d8a3SJacky Wang    darwin=true
74*f585d8a3SJacky Wang    ;;
75*f585d8a3SJacky Wang  MINGW* )
76*f585d8a3SJacky Wang    msys=true
77*f585d8a3SJacky Wang    ;;
78*f585d8a3SJacky Wang  NONSTOP* )
79*f585d8a3SJacky Wang    nonstop=true
80*f585d8a3SJacky Wang    ;;
81*f585d8a3SJacky Wangesac
82*f585d8a3SJacky Wang
83*f585d8a3SJacky WangCLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
84*f585d8a3SJacky Wang
85*f585d8a3SJacky Wang# Determine the Java command to use to start the JVM.
86*f585d8a3SJacky Wangif [ -n "$JAVA_HOME" ] ; then
87*f585d8a3SJacky Wang    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
88*f585d8a3SJacky Wang        # IBM's JDK on AIX uses strange locations for the executables
89*f585d8a3SJacky Wang        JAVACMD="$JAVA_HOME/jre/sh/java"
90*f585d8a3SJacky Wang    else
91*f585d8a3SJacky Wang        JAVACMD="$JAVA_HOME/bin/java"
92*f585d8a3SJacky Wang    fi
93*f585d8a3SJacky Wang    if [ ! -x "$JAVACMD" ] ; then
94*f585d8a3SJacky Wang        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
95*f585d8a3SJacky Wang
96*f585d8a3SJacky WangPlease set the JAVA_HOME variable in your environment to match the
97*f585d8a3SJacky Wanglocation of your Java installation."
98*f585d8a3SJacky Wang    fi
99*f585d8a3SJacky Wangelse
100*f585d8a3SJacky Wang    JAVACMD="java"
101*f585d8a3SJacky Wang    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
102*f585d8a3SJacky Wang
103*f585d8a3SJacky WangPlease set the JAVA_HOME variable in your environment to match the
104*f585d8a3SJacky Wanglocation of your Java installation."
105*f585d8a3SJacky Wangfi
106*f585d8a3SJacky Wang
107*f585d8a3SJacky Wang# Increase the maximum file descriptors if we can.
108*f585d8a3SJacky Wangif [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
109*f585d8a3SJacky Wang    MAX_FD_LIMIT=`ulimit -H -n`
110*f585d8a3SJacky Wang    if [ $? -eq 0 ] ; then
111*f585d8a3SJacky Wang        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
112*f585d8a3SJacky Wang            MAX_FD="$MAX_FD_LIMIT"
113*f585d8a3SJacky Wang        fi
114*f585d8a3SJacky Wang        ulimit -n $MAX_FD
115*f585d8a3SJacky Wang        if [ $? -ne 0 ] ; then
116*f585d8a3SJacky Wang            warn "Could not set maximum file descriptor limit: $MAX_FD"
117*f585d8a3SJacky Wang        fi
118*f585d8a3SJacky Wang    else
119*f585d8a3SJacky Wang        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
120*f585d8a3SJacky Wang    fi
121*f585d8a3SJacky Wangfi
122*f585d8a3SJacky Wang
123*f585d8a3SJacky Wang# For Darwin, add options to specify how the application appears in the dock
124*f585d8a3SJacky Wangif $darwin; then
125*f585d8a3SJacky Wang    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
126*f585d8a3SJacky Wangfi
127*f585d8a3SJacky Wang
128*f585d8a3SJacky Wang# For Cygwin, switch paths to Windows format before running java
129*f585d8a3SJacky Wangif $cygwin ; then
130*f585d8a3SJacky Wang    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
131*f585d8a3SJacky Wang    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
132*f585d8a3SJacky Wang    JAVACMD=`cygpath --unix "$JAVACMD"`
133*f585d8a3SJacky Wang
134*f585d8a3SJacky Wang    # We build the pattern for arguments to be converted via cygpath
135*f585d8a3SJacky Wang    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
136*f585d8a3SJacky Wang    SEP=""
137*f585d8a3SJacky Wang    for dir in $ROOTDIRSRAW ; do
138*f585d8a3SJacky Wang        ROOTDIRS="$ROOTDIRS$SEP$dir"
139*f585d8a3SJacky Wang        SEP="|"
140*f585d8a3SJacky Wang    done
141*f585d8a3SJacky Wang    OURCYGPATTERN="(^($ROOTDIRS))"
142*f585d8a3SJacky Wang    # Add a user-defined pattern to the cygpath arguments
143*f585d8a3SJacky Wang    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
144*f585d8a3SJacky Wang        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
145*f585d8a3SJacky Wang    fi
146*f585d8a3SJacky Wang    # Now convert the arguments - kludge to limit ourselves to /bin/sh
147*f585d8a3SJacky Wang    i=0
148*f585d8a3SJacky Wang    for arg in "$@" ; do
149*f585d8a3SJacky Wang        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
150*f585d8a3SJacky Wang        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
151*f585d8a3SJacky Wang
152*f585d8a3SJacky Wang        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
153*f585d8a3SJacky Wang            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
154*f585d8a3SJacky Wang        else
155*f585d8a3SJacky Wang            eval `echo args$i`="\"$arg\""
156*f585d8a3SJacky Wang        fi
157*f585d8a3SJacky Wang        i=$((i+1))
158*f585d8a3SJacky Wang    done
159*f585d8a3SJacky Wang    case $i in
160*f585d8a3SJacky Wang        (0) set -- ;;
161*f585d8a3SJacky Wang        (1) set -- "$args0" ;;
162*f585d8a3SJacky Wang        (2) set -- "$args0" "$args1" ;;
163*f585d8a3SJacky Wang        (3) set -- "$args0" "$args1" "$args2" ;;
164*f585d8a3SJacky Wang        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
165*f585d8a3SJacky Wang        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
166*f585d8a3SJacky Wang        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
167*f585d8a3SJacky Wang        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
168*f585d8a3SJacky Wang        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
169*f585d8a3SJacky Wang        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
170*f585d8a3SJacky Wang    esac
171*f585d8a3SJacky Wangfi
172*f585d8a3SJacky Wang
173*f585d8a3SJacky Wang# Escape application args
174*f585d8a3SJacky Wangsave () {
175*f585d8a3SJacky Wang    for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
176*f585d8a3SJacky Wang    echo " "
177*f585d8a3SJacky Wang}
178*f585d8a3SJacky WangAPP_ARGS=$(save "$@")
179*f585d8a3SJacky Wang
180*f585d8a3SJacky Wang# Collect all arguments for the java command, following the shell quoting and substitution rules
181*f585d8a3SJacky Wangeval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
182*f585d8a3SJacky Wang
183*f585d8a3SJacky Wang# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
184*f585d8a3SJacky Wangif [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
185*f585d8a3SJacky Wang  cd "$(dirname "$0")"
186*f585d8a3SJacky Wangfi
187*f585d8a3SJacky Wang
188*f585d8a3SJacky Wangexec "$JAVACMD" "$@"
189