git://git.jankratochvil.net
/
nethome.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
c36d392
)
rpmsafereduce: +$IGNORE_D,die->carp
author
root
<jan.kratochvil@redhat.com>
Wed, 6 Nov 2019 10:22:36 +0000
(11:22 +0100)
committer
root
<jan.kratochvil@redhat.com>
Wed, 6 Nov 2019 10:22:36 +0000
(11:22 +0100)
bin/rpmsafereduce
patch
|
blob
|
history
diff --git
a/bin/rpmsafereduce
b/bin/rpmsafereduce
index
dc793e9
..
5a7922c
100755
(executable)
--- a/
bin/rpmsafereduce
+++ b/
bin/rpmsafereduce
@@
-1,12
+1,15
@@
#! /usr/bin/perl
# rpmsafe|sort -u|rpmsafereduce >EXCLUDE-FILELIST
#! /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;
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);
return $sl;
}
my(%d,%f,%t);
@@
-14,15
+17,16
@@
my $l;
while (<>) {
chomp;
next if $_ eq "/";
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;
$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;
$t{$_}=1 if $d{$_};
}
my $time;
@@
-38,7
+42,7
@@
while (%t) {
}
my $t=shift @t;
next if !$d{$t}&&!$f{$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;
my $ok=1;
local $_;
my @d;
@@
-51,16
+55,16
@@
while (%t) {
$ok=0;
last;
}
$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;
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)) {
}
}
for my $f (sort keys(%f)) {