From cbe38aac1a2fbde6d16d0720655d6a5adc3d07b1 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 6 Nov 2019 11:22:36 +0100 Subject: [PATCH 1/1] rpmsafereduce: +$IGNORE_D,die->carp --- bin/rpmsafereduce | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/bin/rpmsafereduce b/bin/rpmsafereduce index dc793e9..5a7922c 100755 --- a/bin/rpmsafereduce +++ b/bin/rpmsafereduce @@ -1,12 +1,15 @@ #! /usr/bin/perl # rpmsafe|sort -u|rpmsafereduce >EXCLUDE-FILELIST +use Carp; +my $IGNORE_D; +#$IGNORE_D=1; # Do not backup directory entry itself even if it is missing in rpms. 581692 -> 37998 vs. 44248 use strict; use warnings; sub slashes($) { my($s)=@_; (my $sl=$s)=~tr{/}{}cd; $sl=length $sl; - $sl>=1 or die $_; + $sl>=1 or carp "<$s>"; return $sl; } my(%d,%f,%t); @@ -14,15 +17,16 @@ my $l; while (<>) { chomp; next if $_ eq "/"; - die $_ if m{//}; - m{^/} or die $_; - die $_ if m{/$}; - die "sort -u: $l >= $_" if $l && $l ge $_; + carp $_ if m{//}; + m{^/} or carp $_; + carp $_ if m{/$}; + carp "sort -u: $l >= $_" if $l && $l ge $_; $l=$_; my $sl=slashes $_; $d{$_}=$sl if -d; $f{$_}=$sl if -f; - s{/[^/]*$}{} or die $_; + s{/[^/]*$}{} or carp $_; + $d{$_}=$sl-1 if $IGNORE_D && $_ ne ""; $t{$_}=1 if $d{$_}; } my $time; @@ -38,7 +42,7 @@ while (%t) { } my $t=shift @t; next if !$d{$t}&&!$f{$t}; - opendir DIR,$t or die "$t: $!"; + opendir DIR,$t or carp "$t: $!"; my $ok=1; local $_; my @d; @@ -51,16 +55,16 @@ while (%t) { $ok=0; last; } - closedir DIR or die "$t: $!"; + closedir DIR or carp "$t: $!"; next if !$ok; for my $d (@d) { delete $f{"$t/$d"}; delete $t{"$t/$d"}; } $f{$t}=slashes $t; - $t=~s{/[^/]*$}{} or die $t; - $d{$t}=slashes $t; - $t{$t}=1; + $t=~s{/[^/]*$}{} or carp $t; + $d{$t}=slashes $t if $IGNORE_D && $t ne ""; + $t{$t}=1 if $d{$t}; } } for my $f (sort keys(%f)) { -- 1.8.3.1