Help-Site Computer Manuals
Software
Hardware
Programming
Networking
  Algorithms & Data Structures   Programming Languages   Revision Control
  Protocols
  Cameras   Computers   Displays   Keyboards & Mice   Motherboards   Networking   Printers & Scanners   Storage
  Windows   Linux & Unix   Mac

CPAN::Checksums
Write a C<CHECKSUMS> file for a directory as on CPAN

CPAN::Checksums - Write a C<CHECKSUMS> file for a directory as on CPAN


NAME

CPAN::Checksums - Write a CHECKSUMS file for a directory as on CPAN


SYNOPSIS


  use CPAN::Checksums qw(updatedir);

  my $success = updatedir($directory);


INCOMPATIBILITY ALERT

Since version 1.0 the generation of the attribute shortname is turned off by default. It was too slow and was not used as far as I know, and above all, it could fail on large directories. The shortname feature can still be turned on by setting the global variable $TRY_SHORTNAME to a true value.


DESCRIPTION

$success = updatedir($dir)
updatedir() takes a directory name as argument and writes a typical CHECKSUMS file in that directory as used on CPAN unless a previously written CHECKSUMS file is there that is still valid. Returns 2 if a new CHECKSUMS file has been written, 1 if a valid CHECKSUMS file is already there, otherwise dies.

Global Variables in package CPAN::Checksums

$IGNORE_MATCH
If the global variable $IGNORE_MATCH is set, then all files matching this expression will be completely ignored and will not be included in the CPAN CHECKSUMS files. Per default this variable is set to

    qr{(?i-xsm:readme$)}

$CAUTION
Setting the global variable $CAUTION causes updatedir() to report changes of files in the attributes size, mtime, md5, or md5-ungz to STDERR.

$TRY_SHORTNAME
By setting the global variable $TRY_SHORTNAME to a true value, you can tell updatedir() to include an attribute shortname in the resulting hash that is 8.3-compatible. Please note, that updatedir() in this case may be slow and may even fail on large directories, because it will always only try 1000 iterations to find a name that is not yet taken and then give up.

$SIGNING_KEY
Setting the global variable $SIGNING_KEY makes the generated CHECKSUMS file to be clear-signed by the command specified in $SIGNING_PROGRAM (defaults to gpg --clearsign --default-key ), passing the signing key as an extra argument. The resulting CHECKSUMS file should look like:

    0&&<<''; # this PGP-signed message is also valid perl

    -----BEGIN PGP SIGNED MESSAGE-----

    Hash: SHA1

    # CHECKSUMS file written on ... by CPAN::Checksums (v...)

    $cksum = {

        ...

    };

    __END__

    -----BEGIN PGP SIGNATURE-----

    ...

    -----END PGP SIGNATURE-----

note that the actual data remains intact, but two extra lines are added to make it legal for both OpenPGP and perl syntax.

$MIN_MTIME_CHECKSUMS
If the global variable $MIN_MTIME_CHECKSUMS is set, then updatedir will renew signatures on checksum files that have an older mtime than the given value.


PREREQUISITES

DirHandle, IO::File, Digest::MD5, Digest::SHA, Compress::Bzip2, Compress::Zlib, File::Spec, Data::Dumper, Data::Compare, File::Temp


BUGS

If updatedir is interrupted, it may leave a temporary file lying around. These files have the File::Temp template CHECKSUMS.XXXX and should be harvested by a cronjob.


AUTHOR

Andreas Koenig, andreas.koenig@anima.de; GnuPG support by Autrijus Tang


LICENSE

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

See http://www.perl.com/perl/misc/Artistic.html


SEE ALSO

perl(1).

Programminig
Wy
Wy
yW
Wy
Programming
Wy
Wy
Wy
Wy