Make Checksums
mkchecksums.pkt is a simple Pikt script to generate a PIKT checksums specification file (see, for example, checksums_redhat_linux_objects.cfg).
As with other scripts, we source this script from the programs.cfg PIKT configuration file (or perhaps a mkchecksums_programs.cfg #include file; not shown). The end-use, target script follows.
#!/pikt/bin/pikt
# mkchecksums.pkt - make a checksums objects file
#
# $ARGV[1] refers to a list of directories enclosed in quotes, e.g.,
#
# mkchecksums.pkt "/bin /usr/bin /sbin /usr/sbin /usr/local/bin"
if #popen(FIND, "find $ARGV[1] -type f -print", "r") != #err()
while #read(FIND) > 0
output $checksum(5, $rdlin)
endwhile
do #pclose(FIND)
else
output "can't open process for reading!"
quit
endif
We suggest that you make separate bin & lib checksum files, as in
# /pikt/lib/programs/mkchecksums.pkt "/bin /usr/bin /sbin /usr/sbin /usr/local/bin" > /pikt/lib/configs/objects/adm/checksums_bin_suse_linux_objects.cfg # /pikt/lib/programs/mkchecksums.pkt "/lib /usr/lib /usr/local/lib" > /pikt/lib/configs/objects/adm/checksums_lib_suse_linux_objects.cfg
then reference these in a higher-level checksums_suse_linux_objects.cfg file.
Note that some additional cleanup may be required.
For more examples, see Samples.