| /* |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| |
| Run RC file, name is in the first arg, second arg is either PATH |
| ENV or -r or nothing |
| */ |
| |
| parse arg name path rest |
| |
| if name = '' then do |
| say 'RC file name is missing' |
| exit 1 |
| end |
| |
| if rest \= '' then do |
| say 'Too many parameters' |
| exit 1 |
| end |
| |
| call runit name path |
| exit 0 |
| |
| runit: procedure |
| parse arg name path dir |
| |
| if path \= '' & path \= '-r' then do |
| dir = value(translate(path),,'OS2ENVIRONMENT') |
| if dir = '' then return |
| dir = translate(dir, '\', '/') /* change UNIX-like path to OS/2 */ |
| end |
| |
| if dir = '' then dir = directory() |
| |
| if path = '-r' then do /* recursive call */ |
| subdir = filespec('path', dir) |
| if subdir \= '\' then do |
| subdir = left(subdir, length(subdir)-1) |
| call runit name path filespec('drive', dir) || subdir |
| end |
| end |
| |
| /* Look for the file and run it */ |
| if right(dir, 1) \= '\' then dir = dir || '\' |
| rcfile = stream(dir || name, 'c', 'query exists') |
| if rcfile \= '' then interpret 'call "' || rcfile || '"' |
| |
| return |