home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Out-Of-The-Net
/
Out-Of-The-Net.iso
/
t
/
checkworkbench
next >
Wrap
Text File
|
1996-05-29
|
4KB
|
337 lines
/*
* $VER: Check-Workbench 1.04 (21.5.96)
*
* ARexx script to check workbench files
* 4 = File there but no version (not a problem)
* 3 = File there but some files too new (may be OK)
* 2 = File there but some files too old (a bit iffy)
* 1 = File not present - major problems, reinstall
* 0 = Incorrect Workbench for Kickstart - forget it, reinstall correct workbench now
*
*/
ADDLIB('rexxsupport.library',0,-30,0)
NL = '0a'x
PARSE ARG SYSTEM OUTPUTFILE INSTALLCHECK
INSTALLCHECK = compress(INSTALLCHECK)
DBASEFILE = Compress(DBASEFILE)
OUTPUTFILE = compress(OUTPUTFILE)
SYSTEM = compress(SYSTEM)
ERRORVALUE = 5
DELETE(OUTPUTFILE)
DELETE('ENV:ERRORVALUE')
ADDRESS COMMAND 'version >env:wbverstr'
Open(vinput,'env:wbverstr',R)
VERSTR = readln(vinput)
close(vinput)
PARSE VAR VERSTR 'Kickstart ' KICKVER'.'KICKREV', Workbench' WBVER'.'WBREV
/*SAY KICKVER WBVER
*/
IF KICKVER = '39' THEN
DO
IF WBVER ~= '39' THEN
DO
ERRORVALUE = 0
CALL SETERROR
/* SAY 'Incorrect Workbench for Kickstart*nReinstall correct version'
*/
END
IF INSTALLCHECK = 'NEW' THEN
DO
DBASEFILE = 'Net&Web1:FilenVer3.0'
END
ELSE
DO
DBASEFILE = 'Net&Web:Scripts/FilenVer3.0'
END
END
IF KICKVER = '40' THEN
DO
IF WBVER ~= '40' THEN
DO
ERRORVALUE = 0
CALL SETERROR
/* SAY 'Incorrect Workbench for Kickstart*nReinstall correct version'
*/
END
IF INSTALLCHECK = 'NEW' THEN
DO
DBASEFILE = 'Net&Web1:FilenVer3.1'
END
ELSE
DO
DBASEFILE = 'Net&Web:Scripts/FilenVer3.1'
END
END
Open(input,DBASEFILE,R)
SAY 'Performing system check please wait...'
DO WHILE ~EOF(input)
Filetotest = Readln(input)
PARSE VAR Filetotest File ' ' DBFileVer
DBFileVer = compress(DBFileVer)
/* start of if exists
*/
IF exists(SYSTEM||file) ~= 0 & DBFileVer ~= 'VersionNotAvailable' THEN
DO
ADDRESS COMMAND 'version '||SYSTEM||File||' file >T:CB001'
Open(input1,'T:CB001',R)
string = readln(input1)
close(input1)
PARSE VAR string filename' 'FileVer
/* SAY filename FileVer DBFileVer
*/
ADDRESS COMMAND 'avail flush >NIL:'
PARSE VAR string NOVER ' ' THEREST
NOVER = compress(NOVER)
/* SAY NOVER
*/
IF NOVER ~= 'Could' THEN
DO
Z = FileVer - DBFileVer
IF Z >= 0 & Z <= 1 THEN
DO
/* SAY 'File '||filename||' is OK'
*/
FILEOK = 1
END
ELSE
DO
IF Z > 1 THEN
DO
FILEAGE = 'new'
IF ERRORVALUE > 3 THEN
DO
ERRORVALUE = 3
END
END
IF Z < 0 THEN
DO
FILEAGE = 'old'
IF ERRORVALUE > 3 THEN
DO
ERRORVALUE = 2
END
END
/* SAY 'File '||filename||' is not a Workbench 3 file or may be the wrong version'
*/
IF exists(OUTPUTFILE) = 0 THEN
DO
Open(output,OUTPUTFILE,W)
END
ELSE
DO
Open(output,OUTPUTFILE,A)
END
writeln(output,'The file '||file||' may be too '||FILEAGE||' for this Amiga.')
writeln(output,'It should be version '||DBFileVer||' but is '||FileVer||NL)
close(output)
END
END
ELSE
DO
IF ERRORVALUE > 4 THEN
DO
ERRORVALUE = 4
END
IF exists(OUTPUTFILE) = 0 THEN
DO
Open(output,OUTPUTFILE,W)
END
ELSE
DO
Open(output,OUTPUTFILE,A)
END
writeln(output,'The file '||file||' is present but does not appear')
writeln(output,'to have a version number, it should be version '||DBFileVer||'.'||NL)
close(output)
END
/* end of if exists
*/
END
ELSE
DO
IF exists(SYSTEM||file) = 0 THEN
DO
/* SAY 'The file '||filename||' could not be found!!'
*/
IF exists(OUTPUTFILE) = 0 THEN
DO
Open(output,OUTPUTFILE,W)
END
ELSE
DO
Open(output,OUTPUTFILE,A)
END
writeln(output,'The file '||file||' is missing from this Amiga. This may cause')
writeln(output,'serious errors if not present, you should consider re-installing Workbench')
ERRORVALUE = 1
close(output)
END
ELSE
DO
/* SAY 'The file '||file||' is present but has no version'
*/
IF ERRORVALUE > 4 THEN
DO
ERRORVALUE = 4
END
END
END
END
DELETE('T:CB001')
CALL SETERROR
SETERROR:
ADDRESS COMMAND 'setenv ERRORVALUE '||ERRORVALUE
EXIT