aboutsummaryrefslogtreecommitdiffstats
path: root/compress_files
diff options
context:
space:
mode:
Diffstat (limited to 'compress_files')
-rwxr-xr-xcompress_files19
1 files changed, 8 insertions, 11 deletions
diff --git a/compress_files b/compress_files
index 8894d73..3a05143 100755
--- a/compress_files
+++ b/compress_files
@@ -15,21 +15,18 @@ die "Unknown extension $ext" unless $ext =~ /^\.(?:gz|bz2|lzma|xz)$/;
my $buildroot = $ENV{RPM_BUILD_ROOT};
die "No build root defined" unless $buildroot;
die "Invalid build root" unless -d $buildroot;
-chdir($buildroot) or die "Can't cd to $buildroot: $!";
+# normalize build root
+$buildroot =~ s|/$||;
-my $exclude_pattern = join('|',
- map { '(:?' . quotemeta($_) . ')' }
- $ENV{EXCLUDE_FROM_COMPRESS} ?
- split(' ', $ENV{EXCLUDE_FROM_COMPRESS}) : ()
-);
-$exclude_pattern = qr/$exclude_pattern/;
+my $exclude_pattern = $ENV{EXCLUDE_FROM_COMPRESS} ?
+ qr/$ENV{EXCLUDE_FROM_COMPRESS}/ : undef;
-my @sodirs = qw{
+my @sodirs = map { "$buildroot/$_" } qw{
usr/man
usr/X11R6/man
usr/lib/perl5/man
};
-my @mandirs = qw{
+my @mandirs = map { "$buildroot/$_" } qw{
usr/info
usr/share/info
usr/man
@@ -49,7 +46,7 @@ my $so_function = sub {
# to open every man page. 1024 is arbitrary.
return if -s $_ > 1024;
# skip excluded files
- return if $File::Find::name =~ $exclude_pattern;
+ return if $exclude_pattern && $File::Find::name =~ $exclude_pattern;
# Test first line of file for the .so thing.
my $SOTEST;
@@ -86,7 +83,7 @@ my $function = sub {
# skip directories
return if -d $_;
# skip excluded files
- return if $File::Find::name =~ $exclude_pattern;
+ return if $exclude_pattern && $File::Find::name =~ $exclude_pattern;
# skip compressed files
return if $_ =~ /\.(?:gz|bz2|lzma|xz)$/;
# skip particular files