1#!/usr/bin/python 2# Licensed to the Apache Software Foundation (ASF) under one or more 3# contributor license agreements. See the NOTICE file distributed with 4# this work for additional information regarding copyright ownership. 5# The ASF licenses this file to You under the Apache License, Version 2.0 6# (the "License"); you may not use this file except in compliance with 7# the License. You may obtain a copy of the License at 8# 9# http://www.apache.org/licenses/LICENSE-2.0 10# 11# Unless required by applicable law or agreed to in writing, software 12# distributed under the License is distributed on an "AS IS" BASIS, 13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14# See the License for the specific language governing permissions and 15# limitations under the License. 16# 17 18""" 19 20 runant.py 21 22 This script is a translation of the runant.pl written by Steve Loughran. 23 It runs ant with/out arguments, it should be quite portable (thanks to 24 the python os library) 25 This script has been tested with Python2.0/Win2K 26 27 created: 2001-04-11 28 author: Pierre Dittgen pierre.dittgen@criltelecom.com 29 30 Assumptions: 31 32 - the "java" executable/script is on the command path 33""" 34import os, os.path, string, sys 35 36# Change it to 1 to get extra debug information 37debug = 0 38 39####################################################################### 40 41# If ANT_HOME is not set default to script's parent directory 42if os.environ.has_key('ANT_HOME'): 43 ANT_HOME = os.environ['ANT_HOME'] 44else: 45 ANT_HOME = os.path.dirname(os.path.dirname(os.path.abspath(sys.argv[0]))) 46 47# set ANT_LIB location 48ANT_LIB = os.path.join(ANT_HOME, 'lib') 49 50# set JAVACMD (check variables JAVACMD and JAVA_HOME) 51JAVACMD = None 52if not os.environ.has_key('JAVACMD'): 53 if os.environ.has_key('JAVA_HOME'): 54 if not os.path.exists(os.environ['JAVA_HOME']): 55 print "Warning: JAVA_HOME is not defined correctly." 56 else: 57 JAVACMD = os.path.join(os.environ['JAVA_HOME'], 'bin', 'java') 58 else: 59 print "Warning: JAVA_HOME not set." 60else: 61 JAVACMD = os.environ['JAVACMD'] 62if not JAVACMD: 63 JAVACMD = 'java' 64 65launcher_jar = os.path.join(ANT_LIB, 'ant-launcher.jar') 66if not os.path.exists(launcher_jar): 67 print 'Unable to locate ant-launcher.jar. Expected to find it in %s' % \ 68 ANT_LIB 69 70# Build up standard classpath (LOCALCLASSPATH) 71LOCALCLASSPATH = launcher_jar 72if os.environ.has_key('LOCALCLASSPATH'): 73 LOCALCLASSPATH += os.pathsep + os.environ['LOCALCLASSPATH'] 74 75ANT_OPTS = "" 76if os.environ.has_key('ANT_OPTS'): 77 ANT_OPTS = os.environ['ANT_OPTS'] 78 79OPTS = "" 80if os.environ.has_key('JIKESPATH'): 81 OPTS = '-Djikes.class.path=\"%s\"' % os.environ['JIKESPATH'] 82 83ANT_ARGS = "" 84if os.environ.has_key('ANT_ARGS'): 85 ANT_ARGS = os.environ['ANT_ARGS'] 86 87CLASSPATH = "" 88if os.environ.has_key('CLASSPATH'): 89 CLASSPATH = os.environ['CLASSPATH'] 90 91# Builds the commandline 92cmdline = ('%s %s -classpath %s -Dant.home=%s %s ' + \ 93 'org.apache.tools.ant.launch.Launcher %s -lib %s %s') \ 94 % (JAVACMD, ANT_OPTS, LOCALCLASSPATH, ANT_HOME, OPTS, ANT_ARGS, \ 95 CLASSPATH, string.join(sys.argv[1:], ' ')) 96 97if debug: 98 print '\n%s\n\n' % (cmdline) 99sys.stdout.flush() 100 101# Run the biniou! 102os.system(cmdline) 103