source: local/greenstone3/linux-32bit/apache-ant-1.9.2/bin/envset.cmd@ 28109

Last change on this file since 28109 was 28109, checked in by davidb, 11 years ago

Shift to newer version of ant

File size: 4.2 KB
Line 
1/*
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
18SET environment variables
19First optional parameter:
20 ; parameters are considered parts of a path variable, semicolons are
21 appended to each element if not already present
22 -D parameters are properties for Java or Makefile etc., -D will be
23 prepended and the parameters will be separated by a space
24 =D the same as above but equal sign is not required
25 , parameters should be comma separated in the environment variable
26 - parameters should be separated by the next parameter
27 Other values mean that the first parameter is missing and the environment
28 variable will be set to the space separated parameters
29
30Second parameter: name of the environment variable
31
32Next parameters: values
33; implies that the equal sign is considered a part of the parameter and is
34not interpreted
35
36-D requires parameters in the form name=value. If the equal sign is not found,
37the parameters are changed to name=expanded_name
38
39Other options have optional equal sign. If it is found, only the part after
40the equal sign will be oprionally expanded.
41
42If the parameter is the minus sign, the next parameter will not be expanded.
43If the parameter is a single dot, it will be replaced with the value of the
44environment variable as it existed before envset was invoked.
45
46For other parameters the batch looks for the environment variable with the
47same name (in uppercase). If it is found, it forms the expanded_name. If
48the environment variable with such a name does not exist, the expanded_name
49will hold the parameter name without case conversion.
50*/
51
52parse arg mode envar args
53
54equal = 0
55sep = ' '
56
57/* Parse command line parameters */
58select
59 when mode='-' then do
60 sep = envar
61 parse var args envar args
62 end
63 when mode=';' then do
64 sep = ''
65 equal = -1
66 end
67 when mode='-D' then equal = 1
68 when mode='=D' then mode = '-D'
69 when mode=',' then sep = ','
70otherwise
71 args = envar args
72 envar = mode
73 mode = ''
74end
75
76env = 'OS2ENVIRONMENT'
77envar = translate(envar)
78orig = value(envar,,env)
79newval = ''
80expand = 1
81
82/* for each parameter... */
83do i = 1 to words(args)
84 if expand > 0 & word(args, i) = '-' then expand = 0
85 else call addval word(args, i)
86end
87
88/* Optionally enclose path variable by quotes */
89if mode = ';' & pos(' ', newval) > 0 then newval = '"' || newval || '"'
90
91/* Set the new value, 'SET' cannot be used since it does not allow '=' */
92x = value(envar, newval, env)
93exit 0
94
95addval: procedure expose sep equal orig expand newval mode env
96parse arg var
97
98if var = '.' then expvar = orig
99else do
100 if equal >= 0 then do
101 parse var var name '=' val
102 if val = '' then var = name
103 else var = val
104 end
105 if expand = 0 then expvar = var
106 else expvar = value(translate(var),,env)
107 if expvar = '' then expvar = var
108 if equal >= 0 then do
109 if val = '' then do
110 parse var expvar key '=' val
111 if val <> '' then name = key
112 else do
113 if equal > 0 then val = key
114 else name = key
115 end
116 end
117 else val = expvar
118 if pos(' ', val) > 0 | pos('=', val) > 0 then val = '"' || val || '"'
119 if val = '' then expvar = name
120 else expvar = name || '=' || val
121 end
122 if mode = '-D' then expvar = '-D' || expvar
123 if mode = ';' then do
124 if right(expvar, 1) <> ';' then expvar = expvar || ';'
125 end
126end
127
128if newval = '' then newval = expvar
129else newval = newval || sep || expvar
130expand = 1
131return
Note: See TracBrowser for help on using the repository browser.