|
|
@@ -0,0 +1,96 @@ |
|
|
|
#!/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 |
|
|
|
|
|
|
|
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) |