validate - run many filetest checks on a tree |
validate - run many filetest checks on a tree
use File::CheckTree;
$warnings += validate( q{ /vmunix -e || die /boot -e || die /bin cd csh -ex csh !-ug sh -ex sh !-ug /usr -d || warn "What happened to $file?\n" });
The validate()
routine takes a single multiline string consisting of
lines containing a filename plus a file test to try on it. (The
file test may also be a ``cd'', causing subsequent relative filenames
to be interpreted relative to that directory.) After the file test
you may put || die
to make it a fatal error if the file test fails.
The default is || warn
. The file test may optionally have a ``!' prepended
to test for the opposite condition. If you do a cd and then list some
relative filenames, you may want to indent them slightly for readability.
If you supply your own die()
or warn()
message, you can use $file to
interpolate the filename.
Filetests may be bunched: ``-rwx'' tests for all of -r
, -w
, and -x
.
Only the first failed test of the bunch will produce a warning.
The routine returns the number of warnings issued.
validate - run many filetest checks on a tree |