diff options
author | Eric Wong <e@80x24.org> | 2023-11-15 04:32:38 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2023-11-15 08:02:56 +0000 |
commit | 7d06b126e9395d96a03b37daf49019925ff0ec76 (patch) | |
tree | 3d62c9e6249022b5e5a3077898224c35454d5c9d /lib/PublicInbox | |
parent | e618c7654794d58b299cc4928065c6a036f9d869 (diff) | |
download | public-inbox-7d06b126e9395d96a03b37daf49019925ff0ec76.tar.gz |
At least on Perl v5.16.3 on CentOS 7.x, use-ing autodie within BEGIN {} affects all subroutines in that package, too. So just use autodie at the top-level and rely on CORE::* and try_cat to handle cases where autodie isn't desired.
Diffstat (limited to 'lib/PublicInbox')
-rw-r--r-- | lib/PublicInbox/Gcf2.pm | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/lib/PublicInbox/Gcf2.pm b/lib/PublicInbox/Gcf2.pm index e0219b55..dcbb201d 100644 --- a/lib/PublicInbox/Gcf2.pm +++ b/lib/PublicInbox/Gcf2.pm @@ -11,10 +11,9 @@ use Time::HiRes qw(clock_gettime CLOCK_MONOTONIC); use IO::Handle; # autoflush use PublicInbox::Git; use PublicInbox::Lock; -use autodie qw(close); +use autodie qw(close open seek truncate); BEGIN { - use autodie; my (%CFG, $c_src); # PublicInbox::Spawn will set PERL_INLINE_DIRECTORY # to ~/.cache/public-inbox/inline-c if it exists and Inline::C works @@ -80,9 +79,8 @@ sub add_alt ($$) { # to refer to $V2INBOX_DIR/git/$EPOCH.git/objects # # See https://bugs.debian.org/975607 - if (open(my $fh, '<', "$objdir/info/alternates")) { - chomp(my @abs_alt = grep m!^/!, PublicInbox::IO::read_all $fh); - $gcf2->add_alternate($_) for @abs_alt; + if (my $s = PublicInbox::IO::try_cat("$objdir/info/alternates")) { + $gcf2->add_alternate($_) for ($s =~ m!^(/[^\n]+)\n!gms); } $gcf2->add_alternate($objdir); 1; @@ -92,8 +90,9 @@ sub have_unlinked_files () { # FIXME: port gcf2-like over to git.git so we won't need to # deal with libgit2 return 1 if $^O ne 'linux'; - open my $fh, '<', "/proc/$$/maps" or return; - while (<$fh>) { return 1 if /\.(?:idx|pack) \(deleted\)$/ } + if (my $s = PublicInbox::IO::try_cat("/proc/$$/maps")) { + return 1 if /\.(?:idx|pack) \(deleted\)/s; + } undef; } |