VERIFY

VERIFY <dir-file-spec> {/F}

VERIFY reads a previously created directory listing and compares it to the actual files, reporting whether they agree or differ. The /f switch outputs the results to the file verify.lst; otherwise it is displayed to the screen.This is a standard and very useful technique for verifying that a particular installation of files is up to date or not corrupted. (It seems amazing that there is no equivalent utility packaged with Windows or UNIX, although the RPM package manager of Linux does have a similar capability.

The specified directory file must have been created with the DIR.LIT /D/V/H switches. For example, when building a release of A-Shell, we execute the following commands:

.dir ashell.dir=dsk0:[]/d/v/h/k/sname

(The /k switch is needed to overwrite a previous copy of ashell.dir, and the /sname switch adds the optional nicety of listing the files sorted by name.)

The resulting directory listing looks something the example below, with each line containing the complete filespec of a single file, followed by the version number and the hash code:

DSK0:ABOUT.LIT[1,4]           1.0(103)          656-123-417-74

DSK0:APPEND.LIT[1,4]          2.1(111)          352-256-456-10

DSK0:ASTAT.LIT[1,4]           2.2(131)          121-772-424-00

DSK0:ATECFG.LIT[1,4]          1.0(100)          260-132-704-07

DSK0:C.LIT[1,4]               1.0(100)          167-604-517-71

DSK0:CHAT.LIT[1,4]            2.2(118)          632-367-207-57

DSK0:CLS.LIT[1,4]             1.0(100)          167-604-517-71

 

You may use VERIFY on this file to check if the standard files that come with A-Shell are still in sync with the release versions:

.VERIFY OPR:ASHELL.DIR

The output looks something like this (hopefully):

DSK0:ABOUT.LIT[1,4]           VERIFIED

DSK0:APPEND.LIT[1,4]          VERIFIED

DSK0:ASTAT.LIT[1,4]           VERIFIED

DSK0:ATECFG.LIT[1,4]          VERIFIED

DSK0:C.LIT[1,4]               VERIFIED

DSK0:CHAT.LIT[1,4]            VERIFIED

DSK0:CLS.LIT[1,4]             VERIFIED

 

If the version or hash of the actual file does not match that recorded in the directory listing, it will report the discrepancy, for example:

DSK0:DIR.LIT[1,4]   ?Version mismatch  is - 1.5(125)  MDL = 1.5(124)

This would indicate that the actual version of the file DIR.LIT is 1.5(125) while the release version as recorded in the directory listing is 1.5(124). (MDL stands for Master Directory Listing)