8 getopts('h:', $opts) or die usage();
10 die usages() if $opts->{h};
12 ### need Text::Diff -- give a polite error (not a standard prereq)
13 unless ( eval { require Text::Diff; Text::Diff->import; 1 } ) {
14 die "\n\t This tool requires the 'Text::Diff' module to be installed\n";
17 my $arch = shift or die usage();
18 my $tar = Archive::Tar->new( $arch ) or die "Couldn't read '$arch': $!";
21 foreach my $file ( $tar->get_files ) {
22 next unless $file->is_file;
23 my $name = $file->name;
25 diff( \($file->get_content), $name,
26 { FILENAME_A => $name,
27 MTIME_A => $file->mtime,
39 Usage: ptardiff ARCHIVE_FILE
42 ptardiff is a small program that diffs an extracted archive
43 against an unextracted one, using the perl module Archive::Tar.
45 This effectively lets you view changes made to an archives contents.
47 Provide the progam with an ARCHIVE_FILE and it will look up all
48 the files with in the archive, scan the current working directory
49 for a file with the name and diff it against the contents of the
54 h Prints this help message
59 $ tar -xzf Acme-Buffy-1.3.tar.gz
60 $ vi Acme-Buffy-1.3/README
64 $ ptardiff Acme-Buffy-1.3.tar.gz > README.patch
79 ptardiff - program that diffs an extracted archive against an unextracted one
83 ptardiff is a small program that diffs an extracted archive
84 against an unextracted one, using the perl module Archive::Tar.
86 This effectively lets you view changes made to an archives contents.
88 Provide the progam with an ARCHIVE_FILE and it will look up all
89 the files with in the archive, scan the current working directory
90 for a file with the name and diff it against the contents of the
98 $ tar -xzf Acme-Buffy-1.3.tar.gz
99 $ vi Acme-Buffy-1.3/README
101 $ ptardiff Acme-Buffy-1.3.tar.gz > README.patch
106 h Prints this help message
110 tar(1), L<Archive::Tar>.