Project

General

Profile

Download (4.32 KB) Statistics
| Branch: | Revision:

git_sitools_idoc / flarecast / cots / ant / apache-ant-1.8.1 / bin / runant.pl @ d2a8c3fd

1
#!/usr/bin/perl
2
#
3
# Licensed to the Apache Software Foundation (ASF) under one or more
4
#  contributor license agreements.  See the NOTICE file distributed with
5
#  this work for additional information regarding copyright ownership.
6
#  The ASF licenses this file to You under the Apache License, Version 2.0
7
#  (the "License"); you may not use this file except in compliance with
8
#  the License.  You may obtain a copy of the License at
9
#
10
#      http://www.apache.org/licenses/LICENSE-2.0
11
#
12
#  Unless required by applicable law or agreed to in writing, software
13
#  distributed under the License is distributed on an "AS IS" BASIS,
14
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
#  See the License for the specific language governing permissions and
16
#  limitations under the License.
17
#
18
#######################################################################
19
#
20
# runant.pl
21
#
22
# wrapper script for invoking ant in a platform with Perl installed
23
# this may include cgi-bin invocation, which is considered somewhat daft.
24
# (slo: that should be a separate file which can be derived from this
25
# and returns the XML formatted output)
26
#
27
# the code is not totally portable due to classpath and directory splitting
28
# issues. oops. (NB, use File::Spec::Functions  will help and the code is
29
# structured for the catfile() call, but because of perl version funnies
30
# the code is not included. 
31
#
32
# created:         2000-8-24
33
# author:          Steve Loughran steve_l@sourceforge.net
34
#######################################################################
35
#
36
# Assumptions:
37
#
38
# - the "java" executable/script is on the command path
39
# - ANT_HOME has been set
40
# - target platform uses ":" as classpath separator or perl indicates it is dos/win32
41
# - target platform uses "/" as directory separator.
42

    
43
#be fussy about variables
44
use strict;
45

    
46
#platform specifics (disabled)
47
#use File::Spec::Functions;
48

    
49
#turn warnings on during dev; generates a few spurious uninitialised var access warnings
50
#use warnings;
51

    
52
#and set $debug to 1 to turn on trace info
53
my $debug=1;
54

    
55
#######################################################################
56
#
57
# check to make sure environment is setup
58
#
59

    
60
my $HOME = $ENV{ANT_HOME};
61
if ($HOME eq "")
62
        {
63
    die "\n\nANT_HOME *MUST* be set!\n\n";
64
        }
65

    
66
my $JAVACMD = $ENV{JAVACMD};
67
$JAVACMD = "java" if $JAVACMD eq "";
68

    
69
my $onnetware = 0;
70
if ($^O eq "NetWare")
71
{
72
  $onnetware = 1;
73
}
74

    
75
my $oncygwin = ($^O eq "cygwin");
76

    
77
#ISSUE: what java wants to split up classpath varies from platform to platform 
78
#and perl is not too hot at hinting which box it is on.
79
#here I assume ":" 'cept on win32, dos, and netware. Add extra tests here as needed.
80
my $s=":";
81
if(($^O eq "MSWin32") || ($^O eq "dos") || ($^O eq "cygwin") ||
82
   ($onnetware == 1))
83
        {
84
        $s=";";
85
        }
86

    
87
#build up standard classpath
88
my $localpath = "$HOME/lib/ant-launcher.jar";
89
#set JVM options and Ant arguments, if any
90
my @ANT_OPTS=split(" ", $ENV{ANT_OPTS});
91
my @ANT_ARGS=split(" ", $ENV{ANT_ARGS});
92

    
93
#jikes
94
if($ENV{JIKESPATH} ne "")
95
        {
96
        push @ANT_OPTS, "-Djikes.class.path=$ENV{JIKESPATH}";
97
        }
98

    
99
#construct arguments to java
100
my @ARGS;
101
push @ARGS, @ANT_OPTS;
102

    
103
my $CYGHOME = "";
104

    
105
my $classpath=$ENV{CLASSPATH};
106
if ($oncygwin == 1) {
107
  $localpath = `cygpath --path --windows $localpath`;
108
  chomp ($localpath);
109
  if (! $classpath eq "")
110
  {
111
    $classpath = `cygpath --path --windows "$classpath"`;
112
    chomp ($classpath);
113
  }
114
  $HOME = `cygpath --path --windows $HOME`;
115
  chomp ($HOME);
116
  $CYGHOME = `cygpath --path --windows $ENV{HOME}`;
117
  chomp ($CYGHOME);
118
}
119
push @ARGS, "-classpath", "$localpath";
120
push @ARGS, "-Dant.home=$HOME";
121
if ( ! $CYGHOME eq "" )
122
{
123
  push @ARGS, "-Dcygwin.user.home=\"$CYGHOME\""
124
}
125
push @ARGS, "org.apache.tools.ant.launch.Launcher", @ANT_ARGS;
126
push @ARGS, @ARGV;
127
if (! $classpath eq "")
128
{
129
  if ($onnetware == 1)
130
  {
131
    # make classpath literally $CLASSPATH
132
    # this is to avoid pushing us over the 512 character limit
133
    # even skip the ; - that is already in $localpath
134
    push @ARGS, "-lib", "\$CLASSPATH";
135
  }
136
  else
137
  {
138
    push @ARGS, "-lib", "$classpath";
139
  }
140
}
141
print "\n $JAVACMD @ARGS\n\n" if ($debug);
142

    
143
my $returnValue = system $JAVACMD, @ARGS;
144
if ($returnValue eq 0)
145
        {
146
        exit 0;
147
        }
148
else
149
        {
150
        # only 0 and 1 are widely recognized as exit values
151
        # so change the exit value to 1
152
        exit 1;
153
        }