@@ -0,0 +1,192 @@ | |||
#! /bin/sh | |||
# Copyright (c) 2001-2002 The Apache Software Foundation. All rights | |||
# reserved. | |||
# load system-wide ant configuration | |||
if [ -f "/etc/ant.conf" ] ; then | |||
. /etc/ant.conf | |||
fi | |||
# provide default values for people who don't use RPMs | |||
if [ -z "$rpm_mode" ] ; then | |||
rpm_mode=false; | |||
fi | |||
if [ -z "$usejikes" ] ; then | |||
usejikes=false; | |||
fi | |||
# load user ant configuration | |||
if [ -f "$HOME/.antrc" ] ; then | |||
. "$HOME/.antrc" | |||
fi | |||
# OS specific support. $var _must_ be set to either true or false. | |||
cygwin=false; | |||
darwin=false; | |||
case "`uname`" in | |||
CYGWIN*) cygwin=true ;; | |||
Darwin*) darwin=true | |||
if [ -z "$JAVA_HOME" ] ; then | |||
JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home | |||
fi | |||
;; | |||
esac | |||
if [ -z "$ANT_HOME" ] ; then | |||
# try to find ANT | |||
if [ -d /opt/ant ] ; then | |||
ANT_HOME=/opt/ant | |||
fi | |||
if [ -d "${HOME}/opt/ant" ] ; then | |||
ANT_HOME="${HOME}/opt/ant" | |||
fi | |||
## resolve links - $0 may be a link to ant's home | |||
PRG="$0" | |||
progname=`basename "$0"` | |||
saveddir=`pwd` | |||
# need this for relative symlinks | |||
cd `dirname "$PRG"` | |||
while [ -h "$PRG" ] ; do | |||
ls=`ls -ld "$PRG"` | |||
link=`expr "$ls" : '.*-> \(.*\)$'` | |||
if expr "$link" : '.*/.*' > /dev/null; then | |||
PRG="$link" | |||
else | |||
PRG=`dirname "$PRG"`"/$link" | |||
fi | |||
done | |||
ANT_HOME=`dirname "$PRG"`/.. | |||
cd "$saveddir" | |||
# make it fully qualified | |||
ANT_HOME=`cd "$ANT_HOME" && pwd` | |||
fi | |||
# For Cygwin, ensure paths are in UNIX format before anything is touched | |||
if $cygwin ; then | |||
[ -n "$ANT_HOME" ] && | |||
ANT_HOME=`cygpath --unix "$ANT_HOME"` | |||
[ -n "$JAVA_HOME" ] && | |||
JAVA_HOME=`cygpath --unix "$JAVA_HOME"` | |||
[ -n "$CLASSPATH" ] && | |||
CLASSPATH=`cygpath --path --unix "$CLASSPATH"` | |||
fi | |||
# set ANT_LIB location | |||
ANT_LIB="${ANT_HOME}/lib" | |||
if [ -z "$JAVACMD" ] ; then | |||
if [ -n "$JAVA_HOME" ] ; then | |||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then | |||
# IBM's JDK on AIX uses strange locations for the executables | |||
JAVACMD="$JAVA_HOME/jre/sh/java" | |||
else | |||
JAVACMD="$JAVA_HOME/bin/java" | |||
fi | |||
else | |||
JAVACMD=java | |||
fi | |||
fi | |||
if [ ! -x "$JAVACMD" ] ; then | |||
echo "Error: JAVA_HOME is not defined correctly." | |||
echo " We cannot execute $JAVACMD" | |||
exit 1 | |||
fi | |||
if [ -n "$CLASSPATH" ] ; then | |||
LOCALCLASSPATH="$CLASSPATH" | |||
fi | |||
# in rpm_mode get ant/optional/xml parser&api from JAVALIBDIR | |||
if $rpm_mode; then | |||
JAVALIBDIR=/usr/share/java | |||
for i in ant ant-optional jaxp_parser xml_apis | |||
do | |||
if [ -z "$LOCALCLASSPATH" ] ; then | |||
LOCALCLASSPATH="$JAVALIBDIR/$i.jar" | |||
else | |||
LOCALCLASSPATH="$JAVALIBDIR/$i.jar":"$LOCALCLASSPATH" | |||
fi | |||
done | |||
# in rpm mode ant/lib is in /usr/share/java/ant | |||
ANT_LIB="${JAVALIBDIR}/ant" | |||
fi | |||
# add in the dependency .jar files in non-RPM mode (the default) | |||
for i in "${ANT_LIB}"/*.jar | |||
do | |||
# if the directory is empty, then it will return the input string | |||
# this is stupid, so case for it | |||
if [ -f "$i" ] ; then | |||
if [ -z "$LOCALCLASSPATH" ] ; then | |||
LOCALCLASSPATH="$i" | |||
else | |||
LOCALCLASSPATH="$i":"$LOCALCLASSPATH" | |||
fi | |||
fi | |||
done | |||
if [ -n "$JAVA_HOME" ] ; then | |||
if [ -f "$JAVA_HOME/lib/tools.jar" ] ; then | |||
LOCALCLASSPATH="$LOCALCLASSPATH:$JAVA_HOME/lib/tools.jar" | |||
fi | |||
if [ -f "$JAVA_HOME/lib/classes.zip" ] ; then | |||
LOCALCLASSPATH="$LOCALCLASSPATH:$JAVA_HOME/lib/classes.zip" | |||
fi | |||
# OSX hack to make Ant work with jikes | |||
if $darwin ; then | |||
OSXHACK="/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Classes" | |||
if [ -d ${OSXHACK} ] ; then | |||
for i in ${OSXHACK}/*.jar | |||
do | |||
JIKESPATH="$JIKESPATH:$i" | |||
done | |||
fi | |||
fi | |||
else | |||
echo "Warning: JAVA_HOME environment variable is not set." | |||
echo " If build fails because sun.* classes could not be found" | |||
echo " you will need to set the JAVA_HOME environment variable" | |||
echo " to the installation directory of java." | |||
fi | |||
# Allow Jikes support (off by default) | |||
if $usejikes; then | |||
ANT_OPTS="$ANT_OPTS -Dbuild.compiler=jikes" | |||
fi | |||
# For Cygwin, switch paths to Windows format before running java | |||
if $cygwin; then | |||
ANT_HOME=`cygpath --path --windows "$ANT_HOME"` | |||
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` | |||
CLASSPATH=`cygpath --path --windows "$CLASSPATH"` | |||
LOCALCLASSPATH=`cygpath --path --windows "$LOCALCLASSPATH"` | |||
CYGHOME=`cygpath --path --windows "$HOME"` | |||
fi | |||
if [ -n "$CYGHOME" ]; then | |||
if [ -n "$JIKESPATH" ]; then | |||
JIKESPATH=`cygpath --path --windows "$JIKESPATH"` | |||
"$JAVACMD" -classpath "$LOCALCLASSPATH" -Dant.home="${ANT_HOME}" -Djikes.class.path="$JIKESPATH" -Dcygwin.user.home="$CYGHOME" $ANT_OPTS org.apache.tools.ant.Main $ANT_ARGS "$@" | |||
else | |||
"$JAVACMD" -classpath "$LOCALCLASSPATH" -Dant.home="${ANT_HOME}" -Dcygwin.user.home="$CYGHOME" $ANT_OPTS org.apache.tools.ant.Main $ANT_ARGS "$@" | |||
fi | |||
else | |||
if [ -n "$JIKESPATH" ]; then | |||
"$JAVACMD" -classpath "$LOCALCLASSPATH" -Dant.home="${ANT_HOME}" -Djikes.class.path="$JIKESPATH" $ANT_OPTS org.apache.tools.ant.Main $ANT_ARGS "$@" | |||
else | |||
"$JAVACMD" -classpath "$LOCALCLASSPATH" -Dant.home="${ANT_HOME}" $ANT_OPTS org.apache.tools.ant.Main $ANT_ARGS "$@" | |||
fi | |||
fi | |||
@@ -0,0 +1,98 @@ | |||
rem XXX @echo off | |||
REM Copyright (c) 2001-2002 The Apache Software Foundation. All rights | |||
REM reserved. | |||
if exist "%HOME%\antrc_pre.bat" call "%HOME%\antrc_pre.bat" | |||
if "%OS%"=="Windows_NT" @setlocal | |||
rem %~dp0 is expanded pathname of the current script under NT | |||
set DEFAULT_ANT_HOME=%~dp0.. | |||
if "%ANT_HOME%"=="" set ANT_HOME=%DEFAULT_ANT_HOME% | |||
set DEFAULT_ANT_HOME= | |||
REM aspectJ disabled - separates -Dfoo=bar into -Dfoo bar | |||
rem Slurp the command line arguments. This loop allows for an unlimited number | |||
rem of arguments (up to the command line limit, anyway). | |||
rem set ANT_CMD_LINE_ARGS=%1 | |||
rem if ""%1""=="""" goto doneStart | |||
rem shift | |||
rem :setupArgs | |||
rem if ""%1""=="""" goto doneStart | |||
rem set ANT_CMD_LINE_ARGS=%ANT_CMD_LINE_ARGS% %1 | |||
rem shift | |||
rem goto setupArgs | |||
rem This label provides a place for the argument list loop to break out | |||
rem and for NT handling to skip to. | |||
rem :doneStart | |||
rem find ANT_HOME if it does not exist due to either an invalid value passed | |||
rem by the user or the %0 problem on Windows 9x | |||
if exist "%ANT_HOME%" goto checkJava | |||
rem check for ant in Program Files on system drive | |||
if not exist "%SystemDrive%\Program Files\ant" goto checkSystemDrive | |||
set ANT_HOME=%SystemDrive%\Program Files\ant | |||
goto checkJava | |||
:checkSystemDrive | |||
rem check for ant in root directory of system drive | |||
if not exist %SystemDrive%\ant\nul goto checkCDrive | |||
set ANT_HOME=%SystemDrive%\ant | |||
goto checkJava | |||
:checkCDrive | |||
rem check for ant in C:\ant for Win9X users | |||
if not exist C:\ant\nul goto noAntHome | |||
set ANT_HOME=C:\ant | |||
goto checkJava | |||
:noAntHome | |||
echo ANT_HOME is set incorrectly or ant could not be located. Please set ANT_HOME. | |||
goto end | |||
:checkJava | |||
set LOCALCLASSPATH=%CLASSPATH% | |||
for %%i in ("%ANT_HOME%\lib\*.jar") do call "%ANT_HOME%\bin\lcp.bat" %%i | |||
rem aspectj adding junit to everything... | |||
call "%ANT_HOME%\bin\lcp.bat" %ANT_HOME%..\junit\junit.jar | |||
if "%JAVA_HOME%" == "" goto noJavaHome | |||
if not exist "%JAVA_HOME%\bin\java.exe" goto noJavaHome | |||
set _JAVACMD=%JAVA_HOME%\bin\java.exe | |||
if exist "%JAVA_HOME%\lib\tools.jar" call "%ANT_HOME%\bin\lcp.bat" "%JAVA_HOME%\lib\tools.jar" | |||
if exist "%JAVA_HOME%\lib\classes.zip" call "%ANT_HOME%\bin\lcp.bat" "%JAVA_HOME%\lib\classes.zip" | |||
goto checkJikes | |||
:noJavaHome | |||
set _JAVACMD=java.exe | |||
echo. | |||
echo Warning: JAVA_HOME environment variable is not set. | |||
echo If build fails because sun.* classes could not be found | |||
echo you will need to set the JAVA_HOME environment variable | |||
echo to the installation directory of java. | |||
echo. | |||
:checkJikes | |||
if not "%JIKESPATH%"=="" goto runAntWithJikes | |||
:runAnt | |||
"%_JAVACMD%" -classpath "%LOCALCLASSPATH%" "-Dant.home=%ANT_HOME%" %ANT_OPTS% org.apache.tools.ant.Main %* | |||
goto end | |||
:runAntWithJikes | |||
"%_JAVACMD%" -classpath "%LOCALCLASSPATH%" "-Dant.home=%ANT_HOME%" "-Djikes.class.path=%JIKESPATH%" %ANT_OPTS% org.apache.tools.ant.Main %* | |||
goto end | |||
:end | |||
set LOCALCLASSPATH= | |||
set _JAVACMD= | |||
set ANT_CMD_LINE_ARGS= | |||
if "%OS%"=="Windows_NT" @endlocal | |||
:mainEnd | |||
if exist "%HOME%\antrc_post.bat" call "%HOME%\antrc_post.bat" | |||
@@ -0,0 +1,12 @@ | |||
#! /bin/sh | |||
# Copyright (c) 2001-2002 The Apache Software Foundation. All rights | |||
# reserved. | |||
# Args: DIR command | |||
cd "$1" | |||
CMD="$2" | |||
shift | |||
shift | |||
exec "$CMD" "$@" |
@@ -0,0 +1,31 @@ | |||
@echo off | |||
REM Copyright (c) 2001-2002 The Apache Software Foundation. All rights | |||
REM reserved. | |||
if "%OS%"=="Windows_NT" @setlocal | |||
if ""%1""=="""" goto runCommand | |||
rem Change drive and directory to %1 | |||
if "%OS%"=="Windows_NT" cd /d ""%1"" | |||
if not "%OS%"=="Windows_NT" cd ""%1"" | |||
shift | |||
rem Slurp the command line arguments. This loop allows for an unlimited number | |||
rem of agruments (up to the command line limit, anyway). | |||
set ANT_RUN_CMD=%1 | |||
if ""%1""=="""" goto runCommand | |||
shift | |||
:loop | |||
if ""%1""=="""" goto runCommand | |||
set ANT_RUN_CMD=%ANT_RUN_CMD% %1 | |||
shift | |||
goto loop | |||
:runCommand | |||
rem echo %ANT_RUN_CMD% | |||
%ANT_RUN_CMD% | |||
if "%OS%"=="Windows_NT" @endlocal | |||
@@ -0,0 +1,51 @@ | |||
#!/usr/bin/perl | |||
####################################################################### | |||
# | |||
# antRun.pl | |||
# | |||
# wrapper script for invoking commands on a platform with Perl installed | |||
# this is akin to antRun.bat, and antRun the SH script | |||
# | |||
# created: 2001-10-18 | |||
# last modified: 2001-11-13 | |||
# author: Jeff Tulley jtulley@novell.com | |||
####################################################################### | |||
#be fussy about variables | |||
use strict; | |||
#turn warnings on during dev; generates a few spurious uninitialised var access warnings | |||
#use warnings; | |||
#and set $debug to 1 to turn on trace info (currently unused) | |||
my $debug=1; | |||
####################################################################### | |||
# change drive and directory to "%1" | |||
my $ANT_RUN_CMD = @ARGV[0]; | |||
# assign current run command to "%2" | |||
chdir (@ARGV[0]) || die "Can't cd to $ARGV[0]: $!\n"; | |||
if ($^O eq "NetWare") { | |||
# There is a bug in Perl 5 on NetWare, where chdir does not | |||
# do anything. On NetWare, the following path-prefixed form should | |||
# always work. (afaict) | |||
$ANT_RUN_CMD .= "/".@ARGV[1]; | |||
} | |||
else { | |||
$ANT_RUN_CMD = @ARGV[1]; | |||
} | |||
# dispose of the first two arguments, leaving only the command's args. | |||
shift; | |||
shift; | |||
# run the command | |||
my $returnValue = system $ANT_RUN_CMD, @ARGV; | |||
if ($returnValue eq 0) { | |||
exit 0; | |||
} | |||
else { | |||
# only 0 and 1 are widely recognized as exit values | |||
# so change the exit value to 1 | |||
exit 1; | |||
} |
@@ -0,0 +1,102 @@ | |||
#!/usr/bin/perl | |||
# | |||
# Copyright (c) 2001 The Apache Software Foundation. All rights | |||
# reserved. | |||
# | |||
# A script to allow Bash or Z-Shell to complete an Ant command-line. | |||
# | |||
# To install for Bash 2.0 or better, add the following to ~/.bashrc: | |||
# | |||
# $ complete -C complete-ant-cmd ant build.sh | |||
# | |||
# To install for Z-Shell 2.5 or better, add the following to ~/.zshrc: | |||
# | |||
# function ant_complete () { | |||
# local args_line args | |||
# read -l args_line | |||
# set -A args $args_line | |||
# set -A reply $(COMP_LINE=$args_line complete-ant-cmd ${args[1]} $1) | |||
# } | |||
# compctl -K ant_complete ant build.sh | |||
# | |||
# @author Mike Williams <mikew@cortexebusiness.com.au> | |||
my $cmdLine = $ENV{'COMP_LINE'}; | |||
my $antCmd = $ARGV[0]; | |||
my $word = $ARGV[1]; | |||
my @completions; | |||
if ($word =~ /^-/) { | |||
list( restrict( $word, getArguments() )); | |||
} elsif ($cmdLine =~ /-(f|buildfile)\s+\S*$/) { | |||
list( getBuildFiles($word) ); | |||
} else { | |||
list( restrict( $word, getTargets() )); | |||
} | |||
exit(0); | |||
sub list { | |||
for (@_) { | |||
print "$_\n"; | |||
} | |||
} | |||
sub restrict { | |||
my ($word, @completions) = @_; | |||
grep( /^\Q$word\E/, @completions ); | |||
} | |||
sub getArguments { | |||
qw(-buildfile -debug -emacs -f -find -help -listener -logfile | |||
-logger -projecthelp -quiet -verbose -version); | |||
} | |||
sub getBuildFiles { | |||
my ($word) = @_; | |||
grep( /\.xml$/, glob( "$word*" )); | |||
} | |||
sub getTargets { | |||
# Look for build-file | |||
my $buildFile = 'build.xml'; | |||
if ($cmdLine =~ /-(f|buildfile)\s+(\S+)/) { | |||
$buildFile = $2; | |||
} | |||
return () unless (-f $buildFile); | |||
# Run "ant -projecthelp" to list targets. Keep a cache of results in a | |||
# cache-file. | |||
my $cacheFile = $buildFile; | |||
$cacheFile =~ s|(.*/)?(.*)|${1}.ant-targets-${2}|; | |||
if ((!-e $cacheFile) || (-M $buildFile) < (-M $cacheFile)) { | |||
open( CACHE, '>'.$cacheFile ) || die "can\'t write $cacheFile: $!\n"; | |||
open( HELP, "$antCmd -projecthelp -f '$buildFile'|" ) || return(); | |||
my %targets; | |||
while( <HELP> ) { | |||
if (/^\s+(\S+)/) { | |||
$targets{$1}++; | |||
} | |||
} | |||
my @targets = sort keys %targets; | |||
for (@targets) { print CACHE "$_\n"; } | |||
return @targets; | |||
} | |||
# Read the target-cache | |||
open( CACHE, $cacheFile ) || die "can\'t read $cacheFile: $!\n"; | |||
my @targets; | |||
while (<CACHE>) { | |||
chop; | |||
s/\r$//; # for Cygwin | |||
push( @targets, $_ ); | |||
} | |||
close( CACHE ); | |||
@targets; | |||
} | |||
@@ -0,0 +1,16 @@ | |||
REM Copyright (c) 2001-2002 The Apache Software Foundation. All rights | |||
REM reserved. | |||
set _CLASSPATHCOMPONENT=%1 | |||
if ""%1""=="""" goto gotAllArgs | |||
shift | |||
:argCheck | |||
if ""%1""=="""" goto gotAllArgs | |||
set _CLASSPATHCOMPONENT=%_CLASSPATHCOMPONENT% %1 | |||
shift | |||
goto argCheck | |||
:gotAllArgs | |||
set LOCALCLASSPATH=%_CLASSPATHCOMPONENT%;%LOCALCLASSPATH% | |||
@@ -0,0 +1,162 @@ | |||
#!/usr/bin/perl | |||
# | |||
# Copyright (c) 2001-2002 The Apache Software Foundation. All rights | |||
# reserved. | |||
# | |||
####################################################################### | |||
# | |||
# runant.pl | |||
# | |||
# wrapper script for invoking ant in a platform with Perl installed | |||
# this may include cgi-bin invocation, which is considered somewhat daft. | |||
# (slo: that should be a separate file which can be derived from this | |||
# and returns the XML formatted output) | |||
# | |||
# the code is not totally portable due to classpath and directory splitting | |||
# issues. oops. (NB, use File::Spec::Functions will help and the code is | |||
# structured for the catfile() call, but because of perl version funnies | |||
# the code is not included. | |||
# | |||
# created: 2000-8-24 | |||
# last modified: 2000-8-24 | |||
# author: Steve Loughran steve_l@sourceforge.net | |||
####################################################################### | |||
# | |||
# Assumptions: | |||
# | |||
# - the "java" executable/script is on the command path | |||
# - ANT_HOME has been set | |||
# - target platform uses ":" as classpath separator or perl indicates it is dos/win32 | |||
# - target platform uses "/" as directory separator. | |||
#be fussy about variables | |||
use strict; | |||
#platform specifics (disabled) | |||
#use File::Spec::Functions; | |||
#turn warnings on during dev; generates a few spurious uninitialised var access warnings | |||
#use warnings; | |||
#and set $debug to 1 to turn on trace info | |||
my $debug=0; | |||
####################################################################### | |||
# | |||
# check to make sure environment is setup | |||
# | |||
my $HOME = $ENV{ANT_HOME}; | |||
if ($HOME eq "") | |||
{ | |||
die "\n\nANT_HOME *MUST* be set!\n\n"; | |||
} | |||
my $JAVACMD = $ENV{JAVACMD}; | |||
$JAVACMD = "java" if $JAVACMD eq ""; | |||
my $onnetware = 0; | |||
if ($^O eq "NetWare") | |||
{ | |||
$onnetware = 1; | |||
} | |||
#ISSUE: what java wants to split up classpath varies from platform to platform | |||
#and perl is not too hot at hinting which box it is on. | |||
#here I assume ":" 'cept on win32, dos, and netware. Add extra tests here as needed. | |||
my $s=":"; | |||
if(($^O eq "MSWin32") || ($^O eq "dos") || ($^O eq "cygwin") || | |||
($onnetware == 1)) | |||
{ | |||
$s=";"; | |||
} | |||
#build up standard classpath | |||
my $localpath=$ENV{CLASSPATH}; | |||
if ($localpath eq "") | |||
{ | |||
print "warning: no initial classpath\n" if ($debug); | |||
$localpath=""; | |||
} | |||
if ($onnetware == 1) | |||
{ | |||
# avoid building a command line bigger than 512 characters - make localpath | |||
# only include the "extra" stuff, and add in the system classpath as an expanded | |||
# variable. | |||
$localpath=""; | |||
} | |||
#add jar files. I am sure there is a perl one liner to do this. | |||
my $jarpattern="$HOME/lib/*.jar"; | |||
my @jarfiles =glob($jarpattern); | |||
print "jarfiles=@jarfiles\n" if ($debug); | |||
my $jar; | |||
foreach $jar (@jarfiles ) | |||
{ | |||
$localpath.="$s$jar"; | |||
} | |||
#if Java home is defined, look for tools.jar & classes.zip and add to classpath | |||
my $JAVA_HOME = $ENV{JAVA_HOME}; | |||
if ($JAVA_HOME ne "") | |||
{ | |||
my $tools="$JAVA_HOME/lib/tools.jar"; | |||
if (-e "$tools") | |||
{ | |||
$localpath .= "$s$tools"; | |||
} | |||
my $classes="$JAVA_HOME/lib/classes.zip"; | |||
if (-e $classes) | |||
{ | |||
$localpath .= "$s$classes"; | |||
} | |||
} | |||
else | |||
{ | |||
print "\n\nWarning: JAVA_HOME environment variable is not set.\n". | |||
"If the build fails because sun.* classes could not be found\n". | |||
"you will need to set the JAVA_HOME environment variable\n". | |||
"to the installation directory of java\n"; | |||
} | |||
#set JVM options and Ant arguments, if any | |||
my @ANT_OPTS=split(" ", $ENV{ANT_OPTS}); | |||
my @ANT_ARGS=split(" ", $ENV{ANT_ARGS}); | |||
#jikes | |||
if($ENV{JIKESPATH} ne "") | |||
{ | |||
push @ANT_OPTS, "-Djikes.class.path=$ENV{JIKESPATH}"; | |||
} | |||
#construct arguments to java | |||
my @ARGS; | |||
if ($onnetware == 1) | |||
{ | |||
# make classpath literally $CLASSPATH; and then the contents of $localpath | |||
# this is to avoid pushing us over the 512 character limit | |||
# even skip the ; - that is already in $localpath | |||
push @ARGS, "-classpath", "\$CLASSPATH$localpath"; | |||
} | |||
else | |||
{ | |||
push @ARGS, "-classpath", "$localpath"; | |||
} | |||
push @ARGS, "-Dant.home=$HOME"; | |||
push @ARGS, @ANT_OPTS; | |||
push @ARGS, "org.apache.tools.ant.Main", @ANT_ARGS; | |||
push @ARGS, @ARGV; | |||
print "\n $JAVACMD @ARGS\n\n" if ($debug); | |||
my $returnValue = system $JAVACMD, @ARGS; | |||
if ($returnValue eq 0) | |||
{ | |||
exit 0; | |||
} | |||
else | |||
{ | |||
# only 0 and 1 are widely recognized as exit values | |||
# so change the exit value to 1 | |||
exit 1; | |||
} |
@@ -0,0 +1,99 @@ | |||
#!/usr/bin/python | |||
""" | |||
runant.py | |||
This script is a translation of the runant.pl written by Steve Loughran. | |||
It runs ant with/out arguments, it should be quite portable (thanks to | |||
the python os library) | |||
This script has been tested with Python2.0/Win2K | |||
Copyright (c) 2001 The Apache Software Foundation. All rights | |||
reserved. | |||
created: 2001-04-11 | |||
author: Pierre Dittgen pierre.dittgen@criltelecom.com | |||
Assumptions: | |||
- the "java" executable/script is on the command path | |||
- ANT_HOME has been set | |||
""" | |||
import os, os.path, string, sys | |||
# Change it to 1 to get extra debug information | |||
debug = 0 | |||
####################################################################### | |||
# | |||
# check to make sure environment is setup | |||
# | |||
if not os.environ.has_key('ANT_HOME'): | |||
print '\n\nANT_HOME *MUST* be set!\n\n' | |||
sys.exit(1) | |||
else: | |||
ANT_HOME = os.environ['ANT_HOME'] | |||
if not os.environ.has_key('JAVACMD'): | |||
JAVACMD = 'java' | |||
else: | |||
JAVACMD = os.environ['JAVACMD'] | |||
# Sets the separator char for CLASSPATH | |||
SEPARATOR = ':' | |||
if os.name == 'dos' or os.name == 'nt': | |||
SEPARATOR = ';' | |||
# Build up standard classpath | |||
localpath = '' | |||
if os.environ.has_key('CLASSPATH'): | |||
localpath = os.environ['CLASSPATH'] | |||
else: | |||
if debug: | |||
print 'Warning: no initial classpath\n' | |||
# Add jar files | |||
LIBDIR = os.path.join(ANT_HOME, 'lib') | |||
jarfiles = [] | |||
for file in os.listdir(LIBDIR): | |||
if file[-4:] == '.jar': | |||
jarfiles.append(os.path.join(LIBDIR,file)) | |||
if debug: | |||
print 'Jar files:' | |||
for jar in jarfiles: | |||
print jar | |||
localpath = localpath + SEPARATOR + string.join(jarfiles, SEPARATOR) | |||
# If JAVA_HOME is defined, look for tools.jar & classes.zip | |||
# and add to classpath | |||
if os.environ.has_key('JAVA_HOME') and os.environ['JAVA_HOME'] != '': | |||
JAVA_HOME = os.environ['JAVA_HOME'] | |||
TOOLS = os.path.join(JAVA_HOME, os.path.join('lib', 'tools.jar')) | |||
if os.path.exists(TOOLS): | |||
localpath = localpath + SEPARATOR + TOOLS | |||
CLASSES = os.path.join(JAVA_HOME, os.path.join('lib', 'classes.zip')) | |||
if os.path.exists(CLASSES): | |||
localpath = localpath + SEPARATOR + CLASSES | |||
else: | |||
print '\n\nWarning: JAVA_HOME environment variable is not set.\n', \ | |||
'If the build fails because sun.* classes could not be found\n', \ | |||
'you will need to set the JAVA_HOME environment variable\n', \ | |||
'to the installation directory of java\n' | |||
# Jikes | |||
ANT_OPTS = [] | |||
if os.environ.has_key('ANT_OPTS'): | |||
ANT_OPTS = string.split(os.environ['ANT_OPTS']) | |||
if os.environ.has_key('JIKESPATH'): | |||
ANT_OPTS.append('-Djikes.class.path=' + os.environ['JIKESPATH']) | |||
# Builds the commandline | |||
cmdline = '%s -classpath %s -Dant.home=%s %s org.apache.tools.ant.Main %s' \ | |||
% (JAVACMD, localpath, ANT_HOME, string.join(ANT_OPTS,' '), \ | |||
string.join(sys.argv[1:], ' ')) | |||
if debug: | |||
print '\n%s\n\n' % (cmdline) | |||
# Run the biniou! | |||
os.system(cmdline) |