aboutsummaryrefslogtreecommitdiffstats
path: root/lib/ant/bin/runant.py
blob: f014fa6d90029684d85e7fb5257a7087f5fe8cdd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#!/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)