blob: 3389ea635a30a38f4889cd10da4bca8dc3d188ce [file] [log] [blame]
#!/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 <russel.winder@concertant.com>
# 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 "$@"