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 (at] criltelecom.com 29 30 Assumptions: 31 32 - the "java" executable/script is on the command path 33 """ 34 import os, os.path, string, sys 35 36 # Change it to 1 to get extra debug information 37 debug = 0 38 39 ####################################################################### 40 41 # If ANT_HOME is not set default to script's parent directory 42 if os.environ.has_key('ANT_HOME'): 43 ANT_HOME = os.environ['ANT_HOME'] 44 else: 45 ANT_HOME = os.path.dirname(os.path.dirname(os.path.abspath(sys.argv[0]))) 46 47 # set ANT_LIB location 48 ANT_LIB = os.path.join(ANT_HOME, 'lib') 49 50 # set JAVACMD (check variables JAVACMD and JAVA_HOME) 51 JAVACMD = None 52 if 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." 60 else: 61 JAVACMD = os.environ['JAVACMD'] 62 if not JAVACMD: 63 JAVACMD = 'java' 64 65 launcher_jar = os.path.join(ANT_LIB, 'ant-launcher.jar') 66 if 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) 71 LOCALCLASSPATH = launcher_jar 72 if os.environ.has_key('LOCALCLASSPATH'): 73 LOCALCLASSPATH += os.pathsep + os.environ['LOCALCLASSPATH'] 74 75 ANT_OPTS = "" 76 if os.environ.has_key('ANT_OPTS'): 77 ANT_OPTS = os.environ['ANT_OPTS'] 78 79 OPTS = "" 80 if os.environ.has_key('JIKESPATH'): 81 OPTS = '-Djikes.class.path=\"%s\"' % os.environ['JIKESPATH'] 82 83 ANT_ARGS = "" 84 if os.environ.has_key('ANT_ARGS'): 85 ANT_ARGS = os.environ['ANT_ARGS'] 86 87 CLASSPATH = "" 88 if os.environ.has_key('CLASSPATH'): 89 CLASSPATH = os.environ['CLASSPATH'] 90 91 # Builds the commandline 92 cmdline = ('%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 97 if debug: 98 print '\n%s\n\n' % (cmdline) 99 sys.stdout.flush() 100 101 # Run the biniou! 102 os.system(cmdline) 103