Browse Source

make the script to start ant from python use the new launcher

Submitted by: Knut Wannheden (knut dot wannheden at paranor dot ch)


git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@275131 13f79535-47bb-0310-9956-ffa450edef68
master
Antoine Levy-Lambert 22 years ago
parent
commit
d85bd5cccf
1 changed files with 32 additions and 52 deletions
  1. +32
    -52
      src/script/runant.py

+ 32
- 52
src/script/runant.py View File

@@ -3,10 +3,10 @@

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
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.
@@ -28,72 +28,52 @@ 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)
if os.environ.has_key('ANT_HOME'):
ANT_HOME = os.environ['ANT_HOME']
else:
ANT_HOME = os.environ['ANT_HOME']
ANT_HOME = os.path.dirname(os.path.dirname(os.path.abspath(sys.argv[0])))

# Add jar files
ANT_LIB = os.path.join(ANT_HOME, 'lib')

if not os.environ.has_key('JAVACMD'):
JAVACMD = 'java'
JAVACMD = 'java'
else:
JAVACMD = os.environ['JAVACMD']

# Sets the separator char for CLASSPATH
SEPARATOR = ':'
if os.name == 'dos' or os.name == 'nt':
SEPARATOR = ';'
JAVACMD = os.environ['JAVACMD']

# Build up standard classpath
localpath = ''
if os.environ.has_key('CLASSPATH'):
localpath = os.environ['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
if debug:
print 'Warning: no initial classpath\n'

launcher_jar = os.path.join(ANT_LIB, 'ant-launcher.jar')
if not os.path.exists(launcher_jar):
print 'Unable to locate ant-launcher.jar. Expected to find it in %s' % \
ANT_LIB
if localpath:
localpath = launcher_jar + os.pathsep + localpath
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'
localpath = launcher_jar

# Jikes
ANT_OPTS = []
if os.environ.has_key('ANT_OPTS'):
ANT_OPTS = string.split(os.environ['ANT_OPTS'])
ANT_OPTS = string.split(os.environ['ANT_OPTS'])

OPTS = []
if os.environ.has_key('JIKESPATH'):
ANT_OPTS.append('-Djikes.class.path=' + os.environ['JIKESPATH'])
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:], ' '))
cmdline = ('%s %s -classpath %s -Dant.home=\"%s\" %s ' + \
'org.apache.tools.ant.launch.Launcher %s') \
% (JAVACMD, string.join(ANT_OPTS,' '), localpath, ANT_HOME, \
string.join(OPTS,' '), string.join(sys.argv[1:], ' '))

if debug:
print '\n%s\n\n' % (cmdline)
print '\n%s\n\n' % (cmdline)

# Run the biniou!
os.system(cmdline)

Loading…
Cancel
Save