xref: /aosp_15_r20/external/snakeyaml/mvnw (revision ac2a7c1bf4e14d82f3bd566dcc2d76d5b42faf34)
1*ac2a7c1bSSadaf Ebrahimi#!/bin/sh
2*ac2a7c1bSSadaf Ebrahimi# ----------------------------------------------------------------------------
3*ac2a7c1bSSadaf Ebrahimi# Licensed to the Apache Software Foundation (ASF) under one
4*ac2a7c1bSSadaf Ebrahimi# or more contributor license agreements.  See the NOTICE file
5*ac2a7c1bSSadaf Ebrahimi# distributed with this work for additional information
6*ac2a7c1bSSadaf Ebrahimi# regarding copyright ownership.  The ASF licenses this file
7*ac2a7c1bSSadaf Ebrahimi# to you under the Apache License, Version 2.0 (the
8*ac2a7c1bSSadaf Ebrahimi# "License"); you may not use this file except in compliance
9*ac2a7c1bSSadaf Ebrahimi# with the License.  You may obtain a copy of the License at
10*ac2a7c1bSSadaf Ebrahimi#
11*ac2a7c1bSSadaf Ebrahimi#    http://www.apache.org/licenses/LICENSE-2.0
12*ac2a7c1bSSadaf Ebrahimi#
13*ac2a7c1bSSadaf Ebrahimi# Unless required by applicable law or agreed to in writing,
14*ac2a7c1bSSadaf Ebrahimi# software distributed under the License is distributed on an
15*ac2a7c1bSSadaf Ebrahimi# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*ac2a7c1bSSadaf Ebrahimi# KIND, either express or implied.  See the License for the
17*ac2a7c1bSSadaf Ebrahimi# specific language governing permissions and limitations
18*ac2a7c1bSSadaf Ebrahimi# under the License.
19*ac2a7c1bSSadaf Ebrahimi# ----------------------------------------------------------------------------
20*ac2a7c1bSSadaf Ebrahimi
21*ac2a7c1bSSadaf Ebrahimi# ----------------------------------------------------------------------------
22*ac2a7c1bSSadaf Ebrahimi# Maven Start Up Batch script
23*ac2a7c1bSSadaf Ebrahimi#
24*ac2a7c1bSSadaf Ebrahimi# Required ENV vars:
25*ac2a7c1bSSadaf Ebrahimi# ------------------
26*ac2a7c1bSSadaf Ebrahimi#   JAVA_HOME - location of a JDK home dir
27*ac2a7c1bSSadaf Ebrahimi#
28*ac2a7c1bSSadaf Ebrahimi# Optional ENV vars
29*ac2a7c1bSSadaf Ebrahimi# -----------------
30*ac2a7c1bSSadaf Ebrahimi#   M2_HOME - location of maven2's installed home dir
31*ac2a7c1bSSadaf Ebrahimi#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
32*ac2a7c1bSSadaf Ebrahimi#     e.g. to debug Maven itself, use
33*ac2a7c1bSSadaf Ebrahimi#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
34*ac2a7c1bSSadaf Ebrahimi#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
35*ac2a7c1bSSadaf Ebrahimi# ----------------------------------------------------------------------------
36*ac2a7c1bSSadaf Ebrahimi
37*ac2a7c1bSSadaf Ebrahimiif [ -z "$MAVEN_SKIP_RC" ] ; then
38*ac2a7c1bSSadaf Ebrahimi
39*ac2a7c1bSSadaf Ebrahimi  if [ -f /usr/local/etc/mavenrc ] ; then
40*ac2a7c1bSSadaf Ebrahimi    . /usr/local/etc/mavenrc
41*ac2a7c1bSSadaf Ebrahimi  fi
42*ac2a7c1bSSadaf Ebrahimi
43*ac2a7c1bSSadaf Ebrahimi  if [ -f /etc/mavenrc ] ; then
44*ac2a7c1bSSadaf Ebrahimi    . /etc/mavenrc
45*ac2a7c1bSSadaf Ebrahimi  fi
46*ac2a7c1bSSadaf Ebrahimi
47*ac2a7c1bSSadaf Ebrahimi  if [ -f "$HOME/.mavenrc" ] ; then
48*ac2a7c1bSSadaf Ebrahimi    . "$HOME/.mavenrc"
49*ac2a7c1bSSadaf Ebrahimi  fi
50*ac2a7c1bSSadaf Ebrahimi
51*ac2a7c1bSSadaf Ebrahimifi
52*ac2a7c1bSSadaf Ebrahimi
53*ac2a7c1bSSadaf Ebrahimi# OS specific support.  $var _must_ be set to either true or false.
54*ac2a7c1bSSadaf Ebrahimicygwin=false;
55*ac2a7c1bSSadaf Ebrahimidarwin=false;
56*ac2a7c1bSSadaf Ebrahimimingw=false
57*ac2a7c1bSSadaf Ebrahimicase "`uname`" in
58*ac2a7c1bSSadaf Ebrahimi  CYGWIN*) cygwin=true ;;
59*ac2a7c1bSSadaf Ebrahimi  MINGW*) mingw=true;;
60*ac2a7c1bSSadaf Ebrahimi  Darwin*) darwin=true
61*ac2a7c1bSSadaf Ebrahimi    # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
62*ac2a7c1bSSadaf Ebrahimi    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
63*ac2a7c1bSSadaf Ebrahimi    if [ -z "$JAVA_HOME" ]; then
64*ac2a7c1bSSadaf Ebrahimi      if [ -x "/usr/libexec/java_home" ]; then
65*ac2a7c1bSSadaf Ebrahimi        export JAVA_HOME="`/usr/libexec/java_home`"
66*ac2a7c1bSSadaf Ebrahimi      else
67*ac2a7c1bSSadaf Ebrahimi        export JAVA_HOME="/Library/Java/Home"
68*ac2a7c1bSSadaf Ebrahimi      fi
69*ac2a7c1bSSadaf Ebrahimi    fi
70*ac2a7c1bSSadaf Ebrahimi    ;;
71*ac2a7c1bSSadaf Ebrahimiesac
72*ac2a7c1bSSadaf Ebrahimi
73*ac2a7c1bSSadaf Ebrahimiif [ -z "$JAVA_HOME" ] ; then
74*ac2a7c1bSSadaf Ebrahimi  if [ -r /etc/gentoo-release ] ; then
75*ac2a7c1bSSadaf Ebrahimi    JAVA_HOME=`java-config --jre-home`
76*ac2a7c1bSSadaf Ebrahimi  fi
77*ac2a7c1bSSadaf Ebrahimifi
78*ac2a7c1bSSadaf Ebrahimi
79*ac2a7c1bSSadaf Ebrahimiif [ -z "$M2_HOME" ] ; then
80*ac2a7c1bSSadaf Ebrahimi  ## resolve links - $0 may be a link to maven's home
81*ac2a7c1bSSadaf Ebrahimi  PRG="$0"
82*ac2a7c1bSSadaf Ebrahimi
83*ac2a7c1bSSadaf Ebrahimi  # need this for relative symlinks
84*ac2a7c1bSSadaf Ebrahimi  while [ -h "$PRG" ] ; do
85*ac2a7c1bSSadaf Ebrahimi    ls=`ls -ld "$PRG"`
86*ac2a7c1bSSadaf Ebrahimi    link=`expr "$ls" : '.*-> \(.*\)$'`
87*ac2a7c1bSSadaf Ebrahimi    if expr "$link" : '/.*' > /dev/null; then
88*ac2a7c1bSSadaf Ebrahimi      PRG="$link"
89*ac2a7c1bSSadaf Ebrahimi    else
90*ac2a7c1bSSadaf Ebrahimi      PRG="`dirname "$PRG"`/$link"
91*ac2a7c1bSSadaf Ebrahimi    fi
92*ac2a7c1bSSadaf Ebrahimi  done
93*ac2a7c1bSSadaf Ebrahimi
94*ac2a7c1bSSadaf Ebrahimi  saveddir=`pwd`
95*ac2a7c1bSSadaf Ebrahimi
96*ac2a7c1bSSadaf Ebrahimi  M2_HOME=`dirname "$PRG"`/..
97*ac2a7c1bSSadaf Ebrahimi
98*ac2a7c1bSSadaf Ebrahimi  # make it fully qualified
99*ac2a7c1bSSadaf Ebrahimi  M2_HOME=`cd "$M2_HOME" && pwd`
100*ac2a7c1bSSadaf Ebrahimi
101*ac2a7c1bSSadaf Ebrahimi  cd "$saveddir"
102*ac2a7c1bSSadaf Ebrahimi  # echo Using m2 at $M2_HOME
103*ac2a7c1bSSadaf Ebrahimifi
104*ac2a7c1bSSadaf Ebrahimi
105*ac2a7c1bSSadaf Ebrahimi# For Cygwin, ensure paths are in UNIX format before anything is touched
106*ac2a7c1bSSadaf Ebrahimiif $cygwin ; then
107*ac2a7c1bSSadaf Ebrahimi  [ -n "$M2_HOME" ] &&
108*ac2a7c1bSSadaf Ebrahimi    M2_HOME=`cygpath --unix "$M2_HOME"`
109*ac2a7c1bSSadaf Ebrahimi  [ -n "$JAVA_HOME" ] &&
110*ac2a7c1bSSadaf Ebrahimi    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
111*ac2a7c1bSSadaf Ebrahimi  [ -n "$CLASSPATH" ] &&
112*ac2a7c1bSSadaf Ebrahimi    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
113*ac2a7c1bSSadaf Ebrahimifi
114*ac2a7c1bSSadaf Ebrahimi
115*ac2a7c1bSSadaf Ebrahimi# For Mingw, ensure paths are in UNIX format before anything is touched
116*ac2a7c1bSSadaf Ebrahimiif $mingw ; then
117*ac2a7c1bSSadaf Ebrahimi  [ -n "$M2_HOME" ] &&
118*ac2a7c1bSSadaf Ebrahimi    M2_HOME="`(cd "$M2_HOME"; pwd)`"
119*ac2a7c1bSSadaf Ebrahimi  [ -n "$JAVA_HOME" ] &&
120*ac2a7c1bSSadaf Ebrahimi    JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
121*ac2a7c1bSSadaf Ebrahimifi
122*ac2a7c1bSSadaf Ebrahimi
123*ac2a7c1bSSadaf Ebrahimiif [ -z "$JAVA_HOME" ]; then
124*ac2a7c1bSSadaf Ebrahimi  javaExecutable="`which javac`"
125*ac2a7c1bSSadaf Ebrahimi  if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
126*ac2a7c1bSSadaf Ebrahimi    # readlink(1) is not available as standard on Solaris 10.
127*ac2a7c1bSSadaf Ebrahimi    readLink=`which readlink`
128*ac2a7c1bSSadaf Ebrahimi    if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
129*ac2a7c1bSSadaf Ebrahimi      if $darwin ; then
130*ac2a7c1bSSadaf Ebrahimi        javaHome="`dirname \"$javaExecutable\"`"
131*ac2a7c1bSSadaf Ebrahimi        javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
132*ac2a7c1bSSadaf Ebrahimi      else
133*ac2a7c1bSSadaf Ebrahimi        javaExecutable="`readlink -f \"$javaExecutable\"`"
134*ac2a7c1bSSadaf Ebrahimi      fi
135*ac2a7c1bSSadaf Ebrahimi      javaHome="`dirname \"$javaExecutable\"`"
136*ac2a7c1bSSadaf Ebrahimi      javaHome=`expr "$javaHome" : '\(.*\)/bin'`
137*ac2a7c1bSSadaf Ebrahimi      JAVA_HOME="$javaHome"
138*ac2a7c1bSSadaf Ebrahimi      export JAVA_HOME
139*ac2a7c1bSSadaf Ebrahimi    fi
140*ac2a7c1bSSadaf Ebrahimi  fi
141*ac2a7c1bSSadaf Ebrahimifi
142*ac2a7c1bSSadaf Ebrahimi
143*ac2a7c1bSSadaf Ebrahimiif [ -z "$JAVACMD" ] ; then
144*ac2a7c1bSSadaf Ebrahimi  if [ -n "$JAVA_HOME"  ] ; then
145*ac2a7c1bSSadaf Ebrahimi    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
146*ac2a7c1bSSadaf Ebrahimi      # IBM's JDK on AIX uses strange locations for the executables
147*ac2a7c1bSSadaf Ebrahimi      JAVACMD="$JAVA_HOME/jre/sh/java"
148*ac2a7c1bSSadaf Ebrahimi    else
149*ac2a7c1bSSadaf Ebrahimi      JAVACMD="$JAVA_HOME/bin/java"
150*ac2a7c1bSSadaf Ebrahimi    fi
151*ac2a7c1bSSadaf Ebrahimi  else
152*ac2a7c1bSSadaf Ebrahimi    JAVACMD="`\\unset -f command; \\command -v java`"
153*ac2a7c1bSSadaf Ebrahimi  fi
154*ac2a7c1bSSadaf Ebrahimifi
155*ac2a7c1bSSadaf Ebrahimi
156*ac2a7c1bSSadaf Ebrahimiif [ ! -x "$JAVACMD" ] ; then
157*ac2a7c1bSSadaf Ebrahimi  echo "Error: JAVA_HOME is not defined correctly." >&2
158*ac2a7c1bSSadaf Ebrahimi  echo "  We cannot execute $JAVACMD" >&2
159*ac2a7c1bSSadaf Ebrahimi  exit 1
160*ac2a7c1bSSadaf Ebrahimifi
161*ac2a7c1bSSadaf Ebrahimi
162*ac2a7c1bSSadaf Ebrahimiif [ -z "$JAVA_HOME" ] ; then
163*ac2a7c1bSSadaf Ebrahimi  echo "Warning: JAVA_HOME environment variable is not set."
164*ac2a7c1bSSadaf Ebrahimifi
165*ac2a7c1bSSadaf Ebrahimi
166*ac2a7c1bSSadaf EbrahimiCLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
167*ac2a7c1bSSadaf Ebrahimi
168*ac2a7c1bSSadaf Ebrahimi# traverses directory structure from process work directory to filesystem root
169*ac2a7c1bSSadaf Ebrahimi# first directory with .mvn subdirectory is considered project base directory
170*ac2a7c1bSSadaf Ebrahimifind_maven_basedir() {
171*ac2a7c1bSSadaf Ebrahimi
172*ac2a7c1bSSadaf Ebrahimi  if [ -z "$1" ]
173*ac2a7c1bSSadaf Ebrahimi  then
174*ac2a7c1bSSadaf Ebrahimi    echo "Path not specified to find_maven_basedir"
175*ac2a7c1bSSadaf Ebrahimi    return 1
176*ac2a7c1bSSadaf Ebrahimi  fi
177*ac2a7c1bSSadaf Ebrahimi
178*ac2a7c1bSSadaf Ebrahimi  basedir="$1"
179*ac2a7c1bSSadaf Ebrahimi  wdir="$1"
180*ac2a7c1bSSadaf Ebrahimi  while [ "$wdir" != '/' ] ; do
181*ac2a7c1bSSadaf Ebrahimi    if [ -d "$wdir"/.mvn ] ; then
182*ac2a7c1bSSadaf Ebrahimi      basedir=$wdir
183*ac2a7c1bSSadaf Ebrahimi      break
184*ac2a7c1bSSadaf Ebrahimi    fi
185*ac2a7c1bSSadaf Ebrahimi    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
186*ac2a7c1bSSadaf Ebrahimi    if [ -d "${wdir}" ]; then
187*ac2a7c1bSSadaf Ebrahimi      wdir=`cd "$wdir/.."; pwd`
188*ac2a7c1bSSadaf Ebrahimi    fi
189*ac2a7c1bSSadaf Ebrahimi    # end of workaround
190*ac2a7c1bSSadaf Ebrahimi  done
191*ac2a7c1bSSadaf Ebrahimi  echo "${basedir}"
192*ac2a7c1bSSadaf Ebrahimi}
193*ac2a7c1bSSadaf Ebrahimi
194*ac2a7c1bSSadaf Ebrahimi# concatenates all lines of a file
195*ac2a7c1bSSadaf Ebrahimiconcat_lines() {
196*ac2a7c1bSSadaf Ebrahimi  if [ -f "$1" ]; then
197*ac2a7c1bSSadaf Ebrahimi    echo "$(tr -s '\n' ' ' < "$1")"
198*ac2a7c1bSSadaf Ebrahimi  fi
199*ac2a7c1bSSadaf Ebrahimi}
200*ac2a7c1bSSadaf Ebrahimi
201*ac2a7c1bSSadaf EbrahimiBASE_DIR=`find_maven_basedir "$(pwd)"`
202*ac2a7c1bSSadaf Ebrahimiif [ -z "$BASE_DIR" ]; then
203*ac2a7c1bSSadaf Ebrahimi  exit 1;
204*ac2a7c1bSSadaf Ebrahimifi
205*ac2a7c1bSSadaf Ebrahimi
206*ac2a7c1bSSadaf Ebrahimi##########################################################################################
207*ac2a7c1bSSadaf Ebrahimi# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
208*ac2a7c1bSSadaf Ebrahimi# This allows using the maven wrapper in projects that prohibit checking in binary data.
209*ac2a7c1bSSadaf Ebrahimi##########################################################################################
210*ac2a7c1bSSadaf Ebrahimiif [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
211*ac2a7c1bSSadaf Ebrahimi    if [ "$MVNW_VERBOSE" = true ]; then
212*ac2a7c1bSSadaf Ebrahimi      echo "Found .mvn/wrapper/maven-wrapper.jar"
213*ac2a7c1bSSadaf Ebrahimi    fi
214*ac2a7c1bSSadaf Ebrahimielse
215*ac2a7c1bSSadaf Ebrahimi    if [ "$MVNW_VERBOSE" = true ]; then
216*ac2a7c1bSSadaf Ebrahimi      echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
217*ac2a7c1bSSadaf Ebrahimi    fi
218*ac2a7c1bSSadaf Ebrahimi    if [ -n "$MVNW_REPOURL" ]; then
219*ac2a7c1bSSadaf Ebrahimi      jarUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
220*ac2a7c1bSSadaf Ebrahimi    else
221*ac2a7c1bSSadaf Ebrahimi      jarUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
222*ac2a7c1bSSadaf Ebrahimi    fi
223*ac2a7c1bSSadaf Ebrahimi    while IFS="=" read key value; do
224*ac2a7c1bSSadaf Ebrahimi      case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
225*ac2a7c1bSSadaf Ebrahimi      esac
226*ac2a7c1bSSadaf Ebrahimi    done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
227*ac2a7c1bSSadaf Ebrahimi    if [ "$MVNW_VERBOSE" = true ]; then
228*ac2a7c1bSSadaf Ebrahimi      echo "Downloading from: $jarUrl"
229*ac2a7c1bSSadaf Ebrahimi    fi
230*ac2a7c1bSSadaf Ebrahimi    wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
231*ac2a7c1bSSadaf Ebrahimi    if $cygwin; then
232*ac2a7c1bSSadaf Ebrahimi      wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
233*ac2a7c1bSSadaf Ebrahimi    fi
234*ac2a7c1bSSadaf Ebrahimi
235*ac2a7c1bSSadaf Ebrahimi    if command -v wget > /dev/null; then
236*ac2a7c1bSSadaf Ebrahimi        if [ "$MVNW_VERBOSE" = true ]; then
237*ac2a7c1bSSadaf Ebrahimi          echo "Found wget ... using wget"
238*ac2a7c1bSSadaf Ebrahimi        fi
239*ac2a7c1bSSadaf Ebrahimi        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
240*ac2a7c1bSSadaf Ebrahimi            wget "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
241*ac2a7c1bSSadaf Ebrahimi        else
242*ac2a7c1bSSadaf Ebrahimi            wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
243*ac2a7c1bSSadaf Ebrahimi        fi
244*ac2a7c1bSSadaf Ebrahimi    elif command -v curl > /dev/null; then
245*ac2a7c1bSSadaf Ebrahimi        if [ "$MVNW_VERBOSE" = true ]; then
246*ac2a7c1bSSadaf Ebrahimi          echo "Found curl ... using curl"
247*ac2a7c1bSSadaf Ebrahimi        fi
248*ac2a7c1bSSadaf Ebrahimi        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
249*ac2a7c1bSSadaf Ebrahimi            curl -o "$wrapperJarPath" "$jarUrl" -f
250*ac2a7c1bSSadaf Ebrahimi        else
251*ac2a7c1bSSadaf Ebrahimi            curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
252*ac2a7c1bSSadaf Ebrahimi        fi
253*ac2a7c1bSSadaf Ebrahimi
254*ac2a7c1bSSadaf Ebrahimi    else
255*ac2a7c1bSSadaf Ebrahimi        if [ "$MVNW_VERBOSE" = true ]; then
256*ac2a7c1bSSadaf Ebrahimi          echo "Falling back to using Java to download"
257*ac2a7c1bSSadaf Ebrahimi        fi
258*ac2a7c1bSSadaf Ebrahimi        javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
259*ac2a7c1bSSadaf Ebrahimi        # For Cygwin, switch paths to Windows format before running javac
260*ac2a7c1bSSadaf Ebrahimi        if $cygwin; then
261*ac2a7c1bSSadaf Ebrahimi          javaClass=`cygpath --path --windows "$javaClass"`
262*ac2a7c1bSSadaf Ebrahimi        fi
263*ac2a7c1bSSadaf Ebrahimi        if [ -e "$javaClass" ]; then
264*ac2a7c1bSSadaf Ebrahimi            if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
265*ac2a7c1bSSadaf Ebrahimi                if [ "$MVNW_VERBOSE" = true ]; then
266*ac2a7c1bSSadaf Ebrahimi                  echo " - Compiling MavenWrapperDownloader.java ..."
267*ac2a7c1bSSadaf Ebrahimi                fi
268*ac2a7c1bSSadaf Ebrahimi                # Compiling the Java class
269*ac2a7c1bSSadaf Ebrahimi                ("$JAVA_HOME/bin/javac" "$javaClass")
270*ac2a7c1bSSadaf Ebrahimi            fi
271*ac2a7c1bSSadaf Ebrahimi            if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
272*ac2a7c1bSSadaf Ebrahimi                # Running the downloader
273*ac2a7c1bSSadaf Ebrahimi                if [ "$MVNW_VERBOSE" = true ]; then
274*ac2a7c1bSSadaf Ebrahimi                  echo " - Running MavenWrapperDownloader.java ..."
275*ac2a7c1bSSadaf Ebrahimi                fi
276*ac2a7c1bSSadaf Ebrahimi                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
277*ac2a7c1bSSadaf Ebrahimi            fi
278*ac2a7c1bSSadaf Ebrahimi        fi
279*ac2a7c1bSSadaf Ebrahimi    fi
280*ac2a7c1bSSadaf Ebrahimifi
281*ac2a7c1bSSadaf Ebrahimi##########################################################################################
282*ac2a7c1bSSadaf Ebrahimi# End of extension
283*ac2a7c1bSSadaf Ebrahimi##########################################################################################
284*ac2a7c1bSSadaf Ebrahimi
285*ac2a7c1bSSadaf Ebrahimiexport MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
286*ac2a7c1bSSadaf Ebrahimiif [ "$MVNW_VERBOSE" = true ]; then
287*ac2a7c1bSSadaf Ebrahimi  echo $MAVEN_PROJECTBASEDIR
288*ac2a7c1bSSadaf Ebrahimifi
289*ac2a7c1bSSadaf EbrahimiMAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
290*ac2a7c1bSSadaf Ebrahimi
291*ac2a7c1bSSadaf Ebrahimi# For Cygwin, switch paths to Windows format before running java
292*ac2a7c1bSSadaf Ebrahimiif $cygwin; then
293*ac2a7c1bSSadaf Ebrahimi  [ -n "$M2_HOME" ] &&
294*ac2a7c1bSSadaf Ebrahimi    M2_HOME=`cygpath --path --windows "$M2_HOME"`
295*ac2a7c1bSSadaf Ebrahimi  [ -n "$JAVA_HOME" ] &&
296*ac2a7c1bSSadaf Ebrahimi    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
297*ac2a7c1bSSadaf Ebrahimi  [ -n "$CLASSPATH" ] &&
298*ac2a7c1bSSadaf Ebrahimi    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
299*ac2a7c1bSSadaf Ebrahimi  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
300*ac2a7c1bSSadaf Ebrahimi    MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
301*ac2a7c1bSSadaf Ebrahimifi
302*ac2a7c1bSSadaf Ebrahimi
303*ac2a7c1bSSadaf Ebrahimi# Provide a "standardized" way to retrieve the CLI args that will
304*ac2a7c1bSSadaf Ebrahimi# work with both Windows and non-Windows executions.
305*ac2a7c1bSSadaf EbrahimiMAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
306*ac2a7c1bSSadaf Ebrahimiexport MAVEN_CMD_LINE_ARGS
307*ac2a7c1bSSadaf Ebrahimi
308*ac2a7c1bSSadaf EbrahimiWRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
309*ac2a7c1bSSadaf Ebrahimi
310*ac2a7c1bSSadaf Ebrahimiexec "$JAVACMD" \
311*ac2a7c1bSSadaf Ebrahimi  $MAVEN_OPTS \
312*ac2a7c1bSSadaf Ebrahimi  $MAVEN_DEBUG_OPTS \
313*ac2a7c1bSSadaf Ebrahimi  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
314*ac2a7c1bSSadaf Ebrahimi  "-Dmaven.home=${M2_HOME}" \
315*ac2a7c1bSSadaf Ebrahimi  "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
316*ac2a7c1bSSadaf Ebrahimi  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
317