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