ptardiff

来自「source of perl for linux application,」· 代码 · 共 113 行

TXT
113
字号
#!/usr/bin/perluse strict;use Archive::Tar;use Getopt::Std;my $opts = {};getopts('h:', $opts) or die usage();die usages() if $opts->{h};### need Text::Diff -- give a polite error (not a standard prereq)unless ( eval { require Text::Diff; Text::Diff->import; 1 } ) {    die "\n\t This tool requires the 'Text::Diff' module to be installed\n";}my $arch = shift                        or die usage();my $tar  = Archive::Tar->new( $arch )   or die "Couldn't read '$arch': $!";foreach my $file ( $tar->get_files ) {    next unless $file->is_file;    my $name = $file->name;        diff(   \($file->get_content), $name,             {   FILENAME_A  => $name,                MTIME_A     => $file->mtime,                OUTPUT      => \*STDOUT            }     );}sub usage {    return q[Usage:  ptardiff ARCHIVE_FILE        ptardiff -h        ptardiff is a small program that diffs an extracted archive    against an unextracted one, using the perl module Archive::Tar.        This effectively lets you view changes made to an archives contents.         Provide the progam with an ARCHIVE_FILE and it will look up all    the files with in the archive, scan the current working directory    for a file with the name and diff it against the contents of the    archive.    Options:    h   Prints this help messageSample Usage:    $ tar -xzf Acme-Buffy-1.3.tar.gz     $ vi Acme-Buffy-1.3/README        [...]    $ ptardiff Acme-Buffy-1.3.tar.gz > README.patchSee Also:    tar(1)    ptar    Archive::Tar    ] . $/;}    =head1 NAMEptardiff - program that diffs an extracted archive against an unextracted one=head1 DESCRIPTION    ptardiff is a small program that diffs an extracted archive    against an unextracted one, using the perl module Archive::Tar.        This effectively lets you view changes made to an archives contents.         Provide the progam with an ARCHIVE_FILE and it will look up all    the files with in the archive, scan the current working directory    for a file with the name and diff it against the contents of the    archive.=head1 SYNOPSIS    ptardiff ARCHIVE_FILE    ptardiff -h    $ tar -xzf Acme-Buffy-1.3.tar.gz     $ vi Acme-Buffy-1.3/README    [...]    $ ptardiff Acme-Buffy-1.3.tar.gz > README.patch=head1 OPTIONS    h   Prints this help message=head1 SEE ALSOtar(1), L<Archive::Tar>.=cut

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?