diff options
author | joey <joey> | 2001-02-09 00:57:53 +0000 |
---|---|---|
committer | joey <joey> | 2001-02-09 00:57:53 +0000 |
commit | 053f6f8b4e7431d32511aef209188a084e8c7e79 (patch) | |
tree | 209a51c8c8fdbcce25c834198f1b3ef705dcb5b0 /dh_compress | |
parent | ae0346306694bb2c52193f6352755c223e6e8935 (diff) | |
download | debhelper-053f6f8b4e7431d32511aef209188a084e8c7e79.tar.gz |
r420: big monsta changes
Diffstat (limited to 'dh_compress')
-rwxr-xr-x | dh_compress | 44 |
1 files changed, 23 insertions, 21 deletions
diff --git a/dh_compress b/dh_compress index 015a1abb..7a930bc3 100755 --- a/dh_compress +++ b/dh_compress @@ -3,24 +3,25 @@ # Compresses files and makes sure that symlinks pointing to the # compressed files get fixed. +use strict; use Cwd; use Debian::Debhelper::Dh_Lib; init(); -foreach $PACKAGE (@{$dh{DOPACKAGES}}) { - $TMP=tmpdir($PACKAGE); - $compress=pkgfile($PACKAGE,"compress"); +foreach my $package (@{$dh{DOPACKAGES}}) { + my $tmp=tmpdir($package); + my $compress=pkgfile($package,"compress"); # Run the file name gathering commands from within the directory # structure that will be effected. - $olddir=getcwd(); - verbose_print("cd $TMP"); - chdir($TMP) || error("Can't cd to $TMP: $!"); + my $olddir=getcwd(); + verbose_print("cd $tmp"); + chdir($tmp) || error("Can't cd to $tmp: $!"); # Figure out what files to compress. - @files=(); + my @files; # First of all, deal with any files specified right on the command line. - if (($PACKAGE eq $dh{FIRSTPACKAGE} || $dh{PARAMS_ALL}) && @ARGV) { + if (($package eq $dh{FIRSTPACKAGE} || $dh{PARAMS_ALL}) && @ARGV) { push @files, @ARGV; } if ($compress) { @@ -29,12 +30,12 @@ foreach $PACKAGE (@{$dh{DOPACKAGES}}) { push @files, split(/\n/,`sh $olddir/$compress 2>/dev/null`); } else { - # By default, fall back to what the policy manual says to compress. - # Note that all the excludes of odd things like _z are because - # gzip refuses to compress such files, assumming they are zip files. - # I looked at the gzip source to get the complete list of such - # extensions: ".gz", ".z", ".taz", ".tgz", "-gz", "-z", "_z" - + # By default, fall back to what the policy manual says to + # compress. Note that all the excludes of odd things like _z + # are because gzip refuses to compress such files, assumming + # they are zip files. I looked at the gzip source to get the + # complete list of such extensions: ".gz", ".z", ".taz", + # ".tgz", "-gz", "-z", "_z" push @files, split(/\n/,` find usr/info usr/share/info usr/man usr/share/man usr/X11*/man -type f ! -name "*.gz" 2>/dev/null || true; find usr/doc usr/share/doc -type f \\( -size +4k -or -name "changelog*" \\) \\ @@ -48,10 +49,10 @@ foreach $PACKAGE (@{$dh{DOPACKAGES}}) { # Exclude files from compression. if (@files && defined($dh{EXCLUDE}) && $dh{EXCLUDE}) { - @new=(); + my @new=(); foreach (@files) { - $ok=1; - foreach $x (@{$dh{EXCLUDE}}) { + my $ok=1; + foreach my $x (@{$dh{EXCLUDE}}) { if (/\Q$x\E/) { $ok=''; last; @@ -67,8 +68,9 @@ foreach $PACKAGE (@{$dh{DOPACKAGES}}) { # space in the end. my @f=(); my %hardlinks; + my %seen; foreach (@files) { - ($dev, $inode, undef, $nlink)=stat($_); + my ($dev, $inode, undef, $nlink)=stat($_); if ($nlink > 1) { if (! $seen{"$inode.$dev"}) { $seen{"$inode.$dev"}=$_; @@ -104,11 +106,11 @@ foreach $PACKAGE (@{$dh{DOPACKAGES}}) { chdir($olddir); # Fix up symlinks that were pointing to the uncompressed files. - open (FIND,"find $TMP -type l |"); + open (FIND,"find $tmp -type l |"); while (<FIND>) { chomp; - ($directory)=m:(.*)/:; - $linkval=readlink($_); + my ($directory)=m:(.*)/:; + my $linkval=readlink($_); if (! -e "$directory/$linkval" && -e "$directory/$linkval.gz") { doit("rm","-f",$_); doit("ln","-sf","$linkval.gz","$_.gz"); |