home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 1996 February
/
PCWK0296.iso
/
sharewar
/
runtime
/
os2ext
/
emx
/
bin
/
emxrev.cmd
< prev
next >
Wrap
OS/2 REXX Batch file
|
1995-02-17
|
4KB
|
130 lines
/* emxrev.cmd -- Display revision numbers of emx DLLs
Copyright (c) 1993-1995 Eberhard Mattes
This file is part of emx.
emx is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
emx is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with emx; see the file COPYING. If not, write to
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
call SysLoadFuncs
parse arg arg1 rest
select
when arg1 = '' then do
say revision( 'emx')
say revision( 'emxio')
say revision( 'emxlibc')
say revision( 'emxlibcm')
say revision( 'emxlibcs')
say revision( 'emxwrap')
end
when arg1 = '-a' then do
if rest \= '' then
call usage
call find_all
end
when arg1 = '-c' then do
if (rest = '') | (words( rest) > 1) then
call usage
parse var rest drive':'rest
if (length( drive) \= 1) | (rest \= '') then
call usage
call find_tree( drive':')
end
when arg1 = '-d' then do
if (rest = '') | (words( rest) > 1) then
call usage
call find_dir rest, 'S'
end
when arg1 = '-f' then do
if (rest = '') | (words( rest) > 1) then
call usage
say revision( rest)
end
when arg1 = '-p' then do
if (rest = '') | (words( rest) > 1) then
call usage
call find_config rest
end
otherwise
call usage
end
exit 0
usage:
say 'Usage:'
say ' emxrev Display revision number of default emx DLLs'
say ' emxrev -a Scan all disks for emx DLLs'
say ' emxrev -c d: Scan complete drive D: for emx DLLs'
say ' emxrev -d dir Scan directory DIR for emx DLLs'
say ' emxrev -f file Display revision number of FILE'
say ' emxrev -p file Scan directories in LIBPATH statement of FILE'
say ''
say 'emx DLLs are emx.dll, emxio.dll, emxlibc.dll, emxlibcm.dll,'
say ' emxlibcs.dll, and emxwrap.dll.'
exit 1
find_all: procedure
drives = SysDriveMap()
do i = 1 to words( drives)
call find_tree( word( drives, i))
end
return
find_tree: procedure
arg drive
call find_dir drive'\', 'S'
return
find_dir: procedure
arg dir, opt
last = right( dir, 1)
if (last \= '/') & (last \= '\') & (last \= ':') then
dir = dir'\'
call SysFileTree dir'emx*.dll', files, 'FO'||opt
do i = 1 to files.0
name = translate( filespec( 'name', files.i))
if (name = 'EMX.DLL') | (name = 'EMXIO.DLL') | (name = 'EMXLIBC.DLL'),
| (name = 'EMXLIBCM.DLL') | (name = 'EMXLIBCS.DLL'),
| (name = 'EMXWRAP.DLL') then
say revision( files.i)
end
return
find_config: procedure
arg config
call SysFileSearch 'LIBPATH=', config, lines
do i = 1 to lines.0
parse var lines.i 'LIBPATH='rest
list = translate( rest, ' ', ';')
do j = 1 to words( list)
call find_dir word( list, j), ''
end
end
return
revision: procedure
arg pathname
call RxFuncAdd emx_revision, pathname, emx_revision
signal on syntax name error
tmp = emx_revision()
signal off syntax
call RxFuncDrop emx_revision
return pathname ': revision =' tmp
error:
return pathname ': revision number not available'