sbin/res/ant/bin/runant.py
changeset 1072 ac1eacb3aa33
parent 1071 02c04d2c8fd8
child 1073 687133dc13cf
equal deleted inserted replaced
1071:02c04d2c8fd8 1072:ac1eacb3aa33
     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 """
       
    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 'Warning: 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 = "-lib " + 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 %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)