runant.pl revision 0
9414015dda290f99570edc01b6dbe98f0f4c49c7Laszlo Hordos# Copyright 2000-2004 The Apache Software Foundation
23bd88d6bfcb5a6d1140e68c159d14264cb5d41bJason Vincent# Licensed under the Apache License, Version 2.0 (the "License");
9414015dda290f99570edc01b6dbe98f0f4c49c7Laszlo Hordos# you may not use this file except in compliance with the License.
9414015dda290f99570edc01b6dbe98f0f4c49c7Laszlo Hordos# You may obtain a copy of the License at
9414015dda290f99570edc01b6dbe98f0f4c49c7Laszlo Hordos# Unless required by applicable law or agreed to in writing, software
9414015dda290f99570edc01b6dbe98f0f4c49c7Laszlo Hordos# distributed under the License is distributed on an "AS IS" BASIS,
9414015dda290f99570edc01b6dbe98f0f4c49c7Laszlo Hordos# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9414015dda290f99570edc01b6dbe98f0f4c49c7Laszlo Hordos# See the License for the specific language governing permissions and
9414015dda290f99570edc01b6dbe98f0f4c49c7Laszlo Hordos# limitations under the License.
9414015dda290f99570edc01b6dbe98f0f4c49c7Laszlo Hordos#######################################################################
9414015dda290f99570edc01b6dbe98f0f4c49c7Laszlo Hordos# wrapper script for invoking ant in a platform with Perl installed
9414015dda290f99570edc01b6dbe98f0f4c49c7Laszlo Hordos# this may include cgi-bin invocation, which is considered somewhat daft.
9414015dda290f99570edc01b6dbe98f0f4c49c7Laszlo Hordos# (slo: that should be a separate file which can be derived from this
9414015dda290f99570edc01b6dbe98f0f4c49c7Laszlo Hordos# and returns the XML formatted output)
1965c5d21403c3d66eb1efa29c670378311b1077Paul Bryan# the code is not totally portable due to classpath and directory splitting
1965c5d21403c3d66eb1efa29c670378311b1077Paul Bryan# issues. oops. (NB, use File::Spec::Functions will help and the code is
1965c5d21403c3d66eb1efa29c670378311b1077Paul Bryan# structured for the catfile() call, but because of perl version funnies
95a1999c80b3861230dabc65b91d0b802a3b62f0Paul Bryan# the code is not included.
1965c5d21403c3d66eb1efa29c670378311b1077Paul Bryan# created: 2000-8-24
1965c5d21403c3d66eb1efa29c670378311b1077Paul Bryan# author: Steve Loughran steve_l@sourceforge.net
1965c5d21403c3d66eb1efa29c670378311b1077Paul Bryan#######################################################################
e9aaa1f1adc6f718befc047fe7177bdf52198c3aLaszlo Hordos# Assumptions:
e9aaa1f1adc6f718befc047fe7177bdf52198c3aLaszlo Hordos# - the "java" executable/script is on the command path
e9aaa1f1adc6f718befc047fe7177bdf52198c3aLaszlo Hordos# - ANT_HOME has been set
e9aaa1f1adc6f718befc047fe7177bdf52198c3aLaszlo Hordos# - target platform uses ":" as classpath separator or perl indicates it is dos/win32
e9aaa1f1adc6f718befc047fe7177bdf52198c3aLaszlo Hordos# - target platform uses "/" as directory separator.
e9aaa1f1adc6f718befc047fe7177bdf52198c3aLaszlo Hordos#be fussy about variables
e9aaa1f1adc6f718befc047fe7177bdf52198c3aLaszlo Hordos#platform specifics (disabled)
e9aaa1f1adc6f718befc047fe7177bdf52198c3aLaszlo Hordos#use File::Spec::Functions;
e9aaa1f1adc6f718befc047fe7177bdf52198c3aLaszlo Hordos#turn warnings on during dev; generates a few spurious uninitialised var access warnings
e9aaa1f1adc6f718befc047fe7177bdf52198c3aLaszlo Hordos#use warnings;
e9aaa1f1adc6f718befc047fe7177bdf52198c3aLaszlo Hordos#and set $debug to 1 to turn on trace info
fd25b99368235181964a13861fbd7bb0a210ddc8Bruno Lavit#######################################################################
0389b442e8bd8d112b977faae238cc8bb66201e2Bruno Lavit# check to make sure environment is setup
1965c5d21403c3d66eb1efa29c670378311b1077Paul Bryan die "\n\nANT_HOME *MUST* be set!\n\n";
376d1bf8f8ca562eecccbf0a0d34aa7c7352e152Laszlo Hordosif ($^O eq "NetWare")
b7dc48d3b8b0550ab1e178408299bed5185ab4a1Bruno Lavit#ISSUE: what java wants to split up classpath varies from platform to platform
376d1bf8f8ca562eecccbf0a0d34aa7c7352e152Laszlo Hordos#and perl is not too hot at hinting which box it is on.
4a3638f833b6a5b87f5979857fb774ca53385cefChad Kienle#here I assume ":" 'cept on win32, dos, and netware. Add extra tests here as needed.
43689602ee8a67deb29ea8412c48410dcaa6b30aLaszlo Hordosif(($^O eq "MSWin32") || ($^O eq "dos") || ($^O eq "cygwin") ||
b7dc48d3b8b0550ab1e178408299bed5185ab4a1Bruno Lavit#build up standard classpath
fa9b7593e9e156060babbf3a9b06de8d6b5da5a3Laszlo Hordos#set JVM options and Ant arguments, if any
dedea1c74ef770604ee181088cedc7bd891486baAndi Egloff push @ANT_OPTS, "-Djikes.class.path=$ENV{JIKESPATH}";
dedea1c74ef770604ee181088cedc7bd891486baAndi Egloff#construct arguments to java
0fdda69ce3627d501e4bb3103765f676bb1ab061Laszlo Hordos $localpath = `cygpath --path --windows $localpath`;
7586bb16914a8a62557e2e56c74a637a451fdd4eAndi Egloff $classpath = `cygpath --path --windows "$classpath"`;
f17bd17365d88d445f029b5859bf524ede9a92f0Andi Egloff $CYGHOME = `cygpath --path --windows $ENV{HOME}`;
43ac19f28eaa5f298d5534a1f4ac21076399f435Phill Cunningtonpush @ARGS, "org.apache.tools.ant.launch.Launcher", @ANT_ARGS;
bdf1b2b1491da535d3c50421c77fc8b1255e5f0aAndi Egloff # make classpath literally $CLASSPATH
8d50d56a56b1ad306c415e4fc0578a22a62ec9a0Laszlo Hordos # this is to avoid pushing us over the 512 character limit
b7dc48d3b8b0550ab1e178408299bed5185ab4a1Bruno Lavit # even skip the ; - that is already in $localpath
2c51c578e0f48b6ebdca554dbb46b8a6e1379fb1Andi Egloff # only 0 and 1 are widely recognized as exit values
2c51c578e0f48b6ebdca554dbb46b8a6e1379fb1Andi Egloff # so change the exit value to 1