| #!/bin/sh |
| |
| # Gant -- A Groovy way of scripting Ant tasks. |
| # |
| # Copyright © 2006-9 Russel Winder |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in |
| # compliance with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software distributed under the License is |
| # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or |
| # implied. See the License for the specific language governing permissions and limitations under the |
| # License. |
| # |
| # Author : Russel Winder <[email protected]> |
| |
| # Gant initiation script for Linux and UNIX -- stand alone version. |
| |
| # This version does not require a GROOVY_HOME to be set since it has all the necessary jars in the |
| # $GANT_HOME/lib directory. |
| |
| # Solaris 10 does not have readlink as standard -- though some people will have the version from |
| # Sunfreeware which is the same as the version on Ubuntu, Cygwin, MSYS, etc. Mac OS X has a version of |
| # readlink that is very different to that on Ubuntu, Solaris/Sunfreeware, Cygwin, MSYS, etc. |
| # |
| # This function attempts to just do the right thing. |
| |
| doReadLink ( ) { |
| case `uname` in |
| Darwin ) |
| gantLocation=`dirname $1` |
| gantPath=`readlink "$1"` |
| if [ "$gantPath" = "" ] |
| then |
| readlinkValue="$1" |
| else |
| linkDir=`dirname $gantPath` |
| currentDirectory=`pwd` |
| cd $gantLocation |
| cd $linkDir |
| gantLocation=`pwd` |
| gantPath=`basename $gantPath` |
| readlinkValue="$gantLocation/$gantPath" |
| cd $currentDirectory |
| fi |
| ;; |
| SunOS ) |
| readlinkPath=`which readlink` |
| if [ `expr "$readlinkPath" : '\([^ ]*\)'` = "no" ] |
| then |
| echo "No readlink command available, please set $2." |
| exit 1 |
| else |
| readlinkValue=`readlink -f $1` |
| fi |
| ;; |
| * ) |
| readlinkValue=`readlink -f $1` |
| ;; |
| esac |
| } |
| |
| # If GANT_HOME is not set, deduce a path. Assume the executable is in $GANT_HOME/bin. |
| |
| if [ -z "$GANT_HOME" ] |
| then |
| if [ -h $0 ] |
| then |
| doReadLink $0 GANT_HOME |
| GANT_HOME=$readlinkValue |
| GANT_HOME=`dirname $GANT_HOME` |
| else |
| GANT_HOME=`dirname $0` |
| fi |
| GANT_HOME=`dirname $GANT_HOME` |
| fi |
| |
| # Force GROOVY_HOME to be GANT_HOME so that the startGroovy code does the right thing. |
| |
| GROOVY_HOME="$GANT_HOME" |
| |
| # If ANT_HOME is not set, deduce a path -- this is needed in order to discover the location of the jars |
| # associated with the Ant installation. Assume the executable is in $ANT_HOME/bin. |
| |
| if [ -z "$ANT_HOME" ] |
| then |
| ANT_HOME=`which ant` |
| if [ -h $ANT_HOME ] |
| then |
| doReadLink $ANT_HOME ANT_HOME |
| ANT_HOME=$readlinkValue |
| fi |
| ANT_HOME=`dirname "$ANT_HOME"` |
| ANT_HOME=`dirname "$ANT_HOME"` |
| fi |
| |
| GROOVY_APP_NAME=Gant |
| GROOVY_CONF="$GANT_HOME/conf/gant-starter.conf" |
| |
| . "$GROOVY_HOME/bin/startGroovy" |
| |
| if $cygwin |
| then |
| GANT_HOME=`cygpath --mixed "$GANT_HOME"` |
| ANT_HOME=`cygpath --mixed "$ANT_HOME"` |
| fi |
| JAVA_OPTS="$JAVA_OPTS -Dgant.home=$GANT_HOME -Dant.home=$ANT_HOME" |
| |
| startGroovy gant.Gant "$@" |