|
- #!/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)
|