diff options
author | Perl 5 Porters <perl5-porters@africa.nicoh.com> | 1996-03-12 05:23:29 +0000 |
---|---|---|
committer | Charles Bailey <bailey@genetics.upenn.edu> | 1996-03-12 05:23:29 +0000 |
commit | 79dd614e1e8c3b0e4ed35016e6971240b606da64 (patch) | |
tree | 1e4f1b1da5d159ab433cdbe7442aa8e60c5a2026 /lib/ExtUtils/Manifest.pm | |
parent | 3b03c0f31a691e1640848ef99a68578751c45958 (diff) | |
download | perl-79dd614e1e8c3b0e4ed35016e6971240b606da64.tar.gz |
Update to MakeMaker 5.26: $^O, File::Copy, and move docs to bottom
Diffstat (limited to 'lib/ExtUtils/Manifest.pm')
-rw-r--r-- | lib/ExtUtils/Manifest.pm | 293 |
1 files changed, 146 insertions, 147 deletions
diff --git a/lib/ExtUtils/Manifest.pm b/lib/ExtUtils/Manifest.pm index 648b0ac098..eb55560c94 100644 --- a/lib/ExtUtils/Manifest.pm +++ b/lib/ExtUtils/Manifest.pm @@ -1,143 +1,5 @@ package ExtUtils::Manifest; -=head1 NAME - -ExtUtils::Manifest - utilities to write and check a MANIFEST file - -=head1 SYNOPSIS - -C<require ExtUtils::Manifest;> - -C<ExtUtils::Manifest::mkmanifest;> - -C<ExtUtils::Manifest::manicheck;> - -C<ExtUtils::Manifest::filecheck;> - -C<ExtUtils::Manifest::fullcheck;> - -C<ExtUtils::Manifest::skipcheck;> - -C<ExtUtild::Manifest::manifind();> - -C<ExtUtils::Manifest::maniread($file);> - -C<ExtUtils::Manifest::manicopy($read,$target,$how);> - -=head1 DESCRIPTION - -Mkmanifest() writes all files in and below the current directory to a -file named in the global variable $ExtUtils::Manifest::MANIFEST (which -defaults to C<MANIFEST>) in the current directory. It works similar to - - find . -print - -but in doing so checks each line in an existing C<MANIFEST> file and -includes any comments that are found in the existing C<MANIFEST> file -in the new one. Anything between white space and an end of line within -a C<MANIFEST> file is considered to be a comment. Filenames and -comments are seperated by one or more TAB characters in the -output. All files that match any regular expression in a file -C<MANIFEST.SKIP> (if such a file exists) are ignored. - -Manicheck() checks if all the files within a C<MANIFEST> in the current -directory really do exist. - -Filecheck() finds files below the current directory that are not -mentioned in the C<MANIFEST> file. An optional file C<MANIFEST.SKIP> -will be consulted. Any file matching a regular expression in such a -file will not be reported as missing in the C<MANIFEST> file. - -Fullcheck() does both a manicheck() and a filecheck(). - -Skipcheck() lists all the files that are skipped due to your -C<MANIFEST.SKIP> file. - -Manifind() retruns a hash reference. The keys of the hash are the -files found below the current directory. - -Maniread($file) reads a named C<MANIFEST> file (defaults to -C<MANIFEST> in the current directory) and returns a HASH reference -with files being the keys and comments being the values of the HASH. - -I<Manicopy($read,$target,$how)> copies the files that are the keys in -the HASH I<%$read> to the named target directory. The HASH reference -I<$read> is typically returned by the maniread() function. This -function is useful for producing a directory tree identical to the -intended distribution tree. The third parameter $how can be used to -specify a different methods of "copying". Valid values are C<cp>, -which actually copies the files, C<ln> which creates hard links, and -C<best> which mostly links the files but copies any symbolic link to -make a tree without any symbolic link. Best is the default. - -=head1 MANIFEST.SKIP - -The file MANIFEST.SKIP may contain regular expressions of files that -should be ignored by mkmanifest() and filecheck(). The regular -expressions should appear one on each line. A typical example: - - \bRCS\b - ^MANIFEST\. - ^Makefile$ - ~$ - \.html$ - \.old$ - ^blib/ - ^MakeMaker-\d - -=head1 EXPORT_OK - -C<&mkmanifest>, C<&manicheck>, C<&filecheck>, C<&fullcheck>, -C<&maniread>, and C<&manicopy> are exportable. - -=head1 GLOBAL VARIABLES - -C<$ExtUtils::Manifest::MANIFEST> defaults to C<MANIFEST>. Changing it -results in both a different C<MANIFEST> and a different -C<MANIFEST.SKIP> file. This is useful if you want to maintain -different distributions for different audiences (say a user version -and a developer version including RCS). - -<$ExtUtils::Manifest::Quiet> defaults to 0. If set to a true value, -all functions act silently. - -=head1 DIAGNOSTICS - -All diagnostic output is sent to C<STDERR>. - -=over - -=item C<Not in MANIFEST:> I<file> - -is reported if a file is found, that is missing in the C<MANIFEST> -file which is excluded by a regular expression in the file -C<MANIFEST.SKIP>. - -=item C<No such file:> I<file> - -is reported if a file mentioned in a C<MANIFEST> file does not -exist. - -=item C<MANIFEST:> I<$!> - -is reported if C<MANIFEST> could not be opened. - -=item C<Added to MANIFEST:> I<file> - -is reported by mkmanifest() if $Verbose is set and a file is added -to MANIFEST. $Verbose is set to 1 by default. - -=back - -=head1 SEE ALSO - -L<ExtUtils::MakeMaker> which has handy targets for most of the functionality. - -=head1 AUTHOR - -Andreas Koenig F<E<lt>koenig@franz.ww.TU-Berlin.DEE<gt>> - -=cut require Exporter; @ISA=('Exporter'); @@ -146,13 +8,14 @@ require Exporter; use Config; use File::Find; +use File::Copy 'copy'; use Carp; $Debug = 0; $Verbose = 1; -$Is_VMS = $Config{'osname'} eq 'VMS'; +$Is_VMS = $^O eq 'VMS'; -$VERSION = $VERSION = substr(q$Revision: 1.22 $,10,4); +$VERSION = $VERSION = substr(q$Revision: 1.23 $,10,4); $Quiet = 0; @@ -359,13 +222,8 @@ sub vms_cp_if_diff { sub cp { my ($srcFile, $dstFile) = @_; - my $buf; - open (IN,"<$srcFile") or die "Can't open input $srcFile: $!\n"; - open (OUT,">$dstFile") or die "Can't open output $dstFile: $!\n"; - my ($perm,$access,$mod) = (stat IN)[2,8,9]; - syswrite(OUT, $buf, $len) while $len = sysread(IN, $buf, 8192); - close IN; - close OUT; + my ($perm,$access,$mod) = (stat $srcFile)[2,8,9]; + copy($srcFile,$dstFile); utime $access, $mod, $dstFile; # chmod a+rX-w,go-w chmod( 0444 | ( $perm & 0111 ? 0111 : 0 ), $dstFile ); @@ -389,3 +247,144 @@ sub best { } 1; + +__END__ + +=head1 NAME + +ExtUtils::Manifest - utilities to write and check a MANIFEST file + +=head1 SYNOPSIS + +C<require ExtUtils::Manifest;> + +C<ExtUtils::Manifest::mkmanifest;> + +C<ExtUtils::Manifest::manicheck;> + +C<ExtUtils::Manifest::filecheck;> + +C<ExtUtils::Manifest::fullcheck;> + +C<ExtUtils::Manifest::skipcheck;> + +C<ExtUtild::Manifest::manifind();> + +C<ExtUtils::Manifest::maniread($file);> + +C<ExtUtils::Manifest::manicopy($read,$target,$how);> + +=head1 DESCRIPTION + +Mkmanifest() writes all files in and below the current directory to a +file named in the global variable $ExtUtils::Manifest::MANIFEST (which +defaults to C<MANIFEST>) in the current directory. It works similar to + + find . -print + +but in doing so checks each line in an existing C<MANIFEST> file and +includes any comments that are found in the existing C<MANIFEST> file +in the new one. Anything between white space and an end of line within +a C<MANIFEST> file is considered to be a comment. Filenames and +comments are seperated by one or more TAB characters in the +output. All files that match any regular expression in a file +C<MANIFEST.SKIP> (if such a file exists) are ignored. + +Manicheck() checks if all the files within a C<MANIFEST> in the current +directory really do exist. + +Filecheck() finds files below the current directory that are not +mentioned in the C<MANIFEST> file. An optional file C<MANIFEST.SKIP> +will be consulted. Any file matching a regular expression in such a +file will not be reported as missing in the C<MANIFEST> file. + +Fullcheck() does both a manicheck() and a filecheck(). + +Skipcheck() lists all the files that are skipped due to your +C<MANIFEST.SKIP> file. + +Manifind() retruns a hash reference. The keys of the hash are the +files found below the current directory. + +Maniread($file) reads a named C<MANIFEST> file (defaults to +C<MANIFEST> in the current directory) and returns a HASH reference +with files being the keys and comments being the values of the HASH. + +I<Manicopy($read,$target,$how)> copies the files that are the keys in +the HASH I<%$read> to the named target directory. The HASH reference +I<$read> is typically returned by the maniread() function. This +function is useful for producing a directory tree identical to the +intended distribution tree. The third parameter $how can be used to +specify a different methods of "copying". Valid values are C<cp>, +which actually copies the files, C<ln> which creates hard links, and +C<best> which mostly links the files but copies any symbolic link to +make a tree without any symbolic link. Best is the default. + +=head1 MANIFEST.SKIP + +The file MANIFEST.SKIP may contain regular expressions of files that +should be ignored by mkmanifest() and filecheck(). The regular +expressions should appear one on each line. A typical example: + + \bRCS\b + ^MANIFEST\. + ^Makefile$ + ~$ + \.html$ + \.old$ + ^blib/ + ^MakeMaker-\d + +=head1 EXPORT_OK + +C<&mkmanifest>, C<&manicheck>, C<&filecheck>, C<&fullcheck>, +C<&maniread>, and C<&manicopy> are exportable. + +=head1 GLOBAL VARIABLES + +C<$ExtUtils::Manifest::MANIFEST> defaults to C<MANIFEST>. Changing it +results in both a different C<MANIFEST> and a different +C<MANIFEST.SKIP> file. This is useful if you want to maintain +different distributions for different audiences (say a user version +and a developer version including RCS). + +<$ExtUtils::Manifest::Quiet> defaults to 0. If set to a true value, +all functions act silently. + +=head1 DIAGNOSTICS + +All diagnostic output is sent to C<STDERR>. + +=over + +=item C<Not in MANIFEST:> I<file> + +is reported if a file is found, that is missing in the C<MANIFEST> +file which is excluded by a regular expression in the file +C<MANIFEST.SKIP>. + +=item C<No such file:> I<file> + +is reported if a file mentioned in a C<MANIFEST> file does not +exist. + +=item C<MANIFEST:> I<$!> + +is reported if C<MANIFEST> could not be opened. + +=item C<Added to MANIFEST:> I<file> + +is reported by mkmanifest() if $Verbose is set and a file is added +to MANIFEST. $Verbose is set to 1 by default. + +=back + +=head1 SEE ALSO + +L<ExtUtils::MakeMaker> which has handy targets for most of the functionality. + +=head1 AUTHOR + +Andreas Koenig F<E<lt>koenig@franz.ww.TU-Berlin.DEE<gt>> + +=cut |