Home | History | Annotate | Download | only in bin
      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