From 822924ebe83c16d7107068e900abc440fb0b18de Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sun, 1 Oct 2023 09:54:20 +0000 Subject: git: improve error reporting We can use autodie for socketpair to handle errors for us, but we need Time::HiRes::stat so we must write the error message ourselves if stat-ing the git executable fails. --- lib/PublicInbox/Git.pm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'lib/PublicInbox/Git.pm') diff --git a/lib/PublicInbox/Git.pm b/lib/PublicInbox/Git.pm index 5003be53..1dbd10b7 100644 --- a/lib/PublicInbox/Git.pm +++ b/lib/PublicInbox/Git.pm @@ -10,6 +10,7 @@ package PublicInbox::Git; use strict; use v5.10.1; use parent qw(Exporter PublicInbox::DS); +use autodie qw(socketpair); use POSIX (); use IO::Handle; # ->blocking use Socket qw(AF_UNIX SOCK_STREAM); @@ -57,7 +58,7 @@ my ($GIT_EXE, $GIT_VER); sub check_git_exe () { $GIT_EXE = which('git') // die "git not found in $ENV{PATH}"; - my @st = stat($GIT_EXE) or die "stat: $!"; + my @st = stat($GIT_EXE) or die "stat($GIT_EXE): $!"; my $st = pack('dd', $st[10], $st[7]); if ($st ne $EXE_ST) { my $rd = popen_rd([ $GIT_EXE, '--version' ]); @@ -144,8 +145,7 @@ sub last_check_err { sub _sock_cmd { my ($self, $batch, $err_c) = @_; $self->{sock} and Carp::confess('BUG: {sock} exists'); - my ($s1, $s2); - socketpair($s1, $s2, AF_UNIX, SOCK_STREAM, 0) or die "socketpair $!"; + socketpair(my $s1, my $s2, AF_UNIX, SOCK_STREAM, 0); $s1->blocking(0); my $opt = { pgid => 0, 0 => $s2, 1 => $s2 }; my $gd = $self->{git_dir}; -- cgit v1.2.3-24-ge0c7