home *** CD-ROM | disk | FTP | other *** search
/ Out-Of-The-Net / Out-Of-The-Net.iso / t / checkworkbench next >
Text File  |  1996-05-29  |  4KB  |  337 lines

  1. /*
  2. *  $VER: Check-Workbench 1.04 (21.5.96)
  3. *
  4. *    ARexx script to check workbench files
  5. *    4 = File there but no version (not a problem)
  6. *    3 = File there but some files too new (may be OK)
  7. *    2 = File there but some files too old (a bit iffy)
  8. *    1 = File not present - major problems, reinstall
  9. *    0 = Incorrect Workbench for Kickstart - forget it, reinstall correct workbench now
  10. *
  11. */
  12. ADDLIB('rexxsupport.library',0,-30,0)
  13.  
  14. NL = '0a'x
  15.  
  16. PARSE ARG SYSTEM OUTPUTFILE INSTALLCHECK
  17.  
  18. INSTALLCHECK = compress(INSTALLCHECK)
  19.  
  20. DBASEFILE = Compress(DBASEFILE)
  21.  
  22. OUTPUTFILE = compress(OUTPUTFILE)
  23.  
  24. SYSTEM = compress(SYSTEM)
  25.  
  26. ERRORVALUE = 5
  27.  
  28. DELETE(OUTPUTFILE)
  29.  
  30. DELETE('ENV:ERRORVALUE')
  31.  
  32. ADDRESS COMMAND 'version >env:wbverstr'
  33.  
  34. Open(vinput,'env:wbverstr',R)
  35. VERSTR = readln(vinput)
  36. close(vinput)
  37.  
  38. PARSE VAR VERSTR 'Kickstart ' KICKVER'.'KICKREV', Workbench' WBVER'.'WBREV
  39.  
  40. /*SAY KICKVER WBVER
  41. */
  42. IF KICKVER = '39' THEN
  43.  
  44. DO
  45.  
  46.     IF WBVER ~= '39' THEN
  47.  
  48.     DO 
  49.  
  50.     ERRORVALUE = 0
  51.  
  52.     CALL SETERROR
  53.  
  54. /*    SAY 'Incorrect Workbench for Kickstart*nReinstall correct version'
  55. */
  56.     END
  57.  
  58.     IF INSTALLCHECK = 'NEW' THEN
  59.  
  60.     DO
  61.  
  62.     DBASEFILE = 'Net&Web1:FilenVer3.0'
  63.  
  64.     END
  65.  
  66.     ELSE
  67.  
  68.     DO
  69.  
  70.     DBASEFILE = 'Net&Web:Scripts/FilenVer3.0'
  71.  
  72.     END
  73.  
  74. END
  75.  
  76. IF KICKVER = '40' THEN
  77.  
  78. DO
  79.  
  80.     IF WBVER ~= '40' THEN
  81.  
  82.     DO 
  83.  
  84.     ERRORVALUE = 0
  85.  
  86.     CALL SETERROR
  87.  
  88. /*    SAY 'Incorrect Workbench for Kickstart*nReinstall correct version'
  89. */
  90.     END
  91.  
  92.     IF INSTALLCHECK = 'NEW' THEN
  93.  
  94.     DO
  95.  
  96.     DBASEFILE = 'Net&Web1:FilenVer3.1'
  97.  
  98.     END
  99.  
  100.     ELSE
  101.  
  102.     DO
  103.  
  104.     DBASEFILE = 'Net&Web:Scripts/FilenVer3.1'
  105.  
  106.     END
  107.  
  108. END
  109.  
  110. Open(input,DBASEFILE,R)
  111.  
  112. SAY 'Performing system check please wait...'
  113.  
  114. DO WHILE ~EOF(input)
  115.  
  116.     Filetotest = Readln(input)
  117.  
  118.     PARSE VAR Filetotest File '    ' DBFileVer
  119.  
  120.     DBFileVer = compress(DBFileVer)
  121.  
  122. /* start of if exists
  123. */
  124.  
  125.     IF exists(SYSTEM||file) ~= 0 & DBFileVer ~= 'VersionNotAvailable' THEN
  126.  
  127.     DO
  128.  
  129.         ADDRESS COMMAND 'version '||SYSTEM||File||' file >T:CB001'
  130.     
  131.         Open(input1,'T:CB001',R)
  132.  
  133.         string = readln(input1)
  134.  
  135.         close(input1)
  136.  
  137.         PARSE VAR string filename' 'FileVer
  138.  
  139. /*        SAY filename FileVer DBFileVer 
  140. */
  141.         ADDRESS COMMAND 'avail flush >NIL:'
  142.  
  143.  
  144.         PARSE VAR string NOVER ' ' THEREST
  145.  
  146.         NOVER = compress(NOVER)
  147.  
  148. /*        SAY NOVER
  149. */
  150.         IF NOVER ~= 'Could' THEN
  151.  
  152.         DO
  153.  
  154.  
  155.             Z = FileVer - DBFileVer 
  156.  
  157.             IF Z >= 0 & Z <= 1 THEN
  158.  
  159.             DO 
  160.  
  161. /*                SAY 'File '||filename||' is OK'
  162. */    
  163.                 FILEOK = 1
  164.  
  165.             END
  166.  
  167.             ELSE
  168.  
  169.             DO
  170.  
  171.  
  172.                 IF Z > 1 THEN
  173.  
  174.                 DO
  175.  
  176.                     FILEAGE = 'new'
  177.  
  178.                     IF    ERRORVALUE > 3 THEN
  179.  
  180.                     DO
  181.  
  182.                     ERRORVALUE = 3
  183.  
  184.                     END
  185.  
  186.                 END
  187.  
  188.                 IF Z < 0 THEN
  189.  
  190.                 DO
  191.  
  192.                     FILEAGE = 'old'
  193.  
  194.                     IF    ERRORVALUE > 3 THEN
  195.  
  196.                     DO
  197.  
  198.                     ERRORVALUE = 2
  199.  
  200.                     END
  201.  
  202.                 END
  203.  
  204. /*                SAY 'File '||filename||' is not a Workbench 3 file or may be the wrong version'
  205. */
  206.                 IF exists(OUTPUTFILE) = 0 THEN
  207.  
  208.                 DO
  209.  
  210.                     Open(output,OUTPUTFILE,W)
  211.  
  212.                 END
  213.  
  214.                 ELSE
  215.  
  216.                 DO 
  217.  
  218.                     Open(output,OUTPUTFILE,A)
  219.  
  220.                 END
  221.  
  222.                 writeln(output,'The file '||file||' may be too '||FILEAGE||' for this Amiga.')
  223.  
  224.                 writeln(output,'It should be version '||DBFileVer||' but is '||FileVer||NL)
  225.     
  226.                 close(output)        
  227.     
  228.             END        
  229.         END
  230.  
  231.         ELSE
  232.  
  233.         DO
  234.  
  235.             IF ERRORVALUE > 4 THEN
  236.  
  237.             DO
  238.  
  239.                 ERRORVALUE = 4
  240.  
  241.             END
  242.  
  243.             IF exists(OUTPUTFILE) = 0 THEN
  244.  
  245.             DO
  246.  
  247.                 Open(output,OUTPUTFILE,W)
  248.  
  249.             END
  250.  
  251.             ELSE
  252.  
  253.             DO 
  254.  
  255.                 Open(output,OUTPUTFILE,A)
  256.  
  257.             END
  258.  
  259.             writeln(output,'The file '||file||' is present but does not appear')
  260.  
  261.             writeln(output,'to have a version number, it should be version '||DBFileVer||'.'||NL)
  262.     
  263.             close(output)        
  264.  
  265.         END
  266.  
  267. /* end of if exists
  268. */
  269.     END
  270.  
  271.     ELSE
  272.  
  273.     DO
  274.  
  275.         IF exists(SYSTEM||file) = 0 THEN
  276.     
  277.         DO
  278.  
  279. /*            SAY 'The file '||filename||' could not be found!!'
  280. */
  281.             IF exists(OUTPUTFILE) = 0 THEN
  282.  
  283.             DO
  284.  
  285.                 Open(output,OUTPUTFILE,W)
  286.  
  287.             END
  288.  
  289.             ELSE
  290.  
  291.             DO 
  292.  
  293.                 Open(output,OUTPUTFILE,A)
  294.  
  295.             END
  296.  
  297.             writeln(output,'The file '||file||' is missing from this Amiga. This may cause')
  298.  
  299.             writeln(output,'serious errors if not present, you should consider re-installing Workbench')
  300.  
  301.             ERRORVALUE = 1
  302.  
  303.             close(output)        
  304.  
  305.         END
  306.  
  307.         ELSE 
  308.  
  309.         DO
  310.  
  311. /*            SAY 'The file '||file||' is present but has no version'
  312. */
  313.             IF    ERRORVALUE > 4 THEN
  314.  
  315.             DO
  316.  
  317.             ERRORVALUE = 4
  318.  
  319.             END
  320.  
  321.         END
  322.  
  323.     END
  324.  
  325. END
  326.  
  327. DELETE('T:CB001')
  328.  
  329. CALL SETERROR
  330.  
  331. SETERROR:
  332.  
  333. ADDRESS COMMAND 'setenv ERRORVALUE '||ERRORVALUE
  334.  
  335. EXIT
  336.  
  337.