X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FGitCredential.pm;h=b18bba1ec32454b29a03339a54c2ed53b17c008c;hb=HEAD;hp=2d81817c8d7cff1c8f996bdd0312ba09c2f498c2;hpb=63283ae1b51203c930332e6887296cb123e5db6c;p=public-inbox.git diff --git a/lib/PublicInbox/GitCredential.pm b/lib/PublicInbox/GitCredential.pm index 2d81817c..b18bba1e 100644 --- a/lib/PublicInbox/GitCredential.pm +++ b/lib/PublicInbox/GitCredential.pm @@ -9,7 +9,7 @@ sub run ($$;$) { my ($in_r, $in_w, $out_r); my $cmd = [ qw(git credential), $op ]; pipe($in_r, $in_w) or die "pipe: $!"; - if ($lei && !$lei->{oneshot}) { # we'll die if disconnected: + if ($lei) { # we'll die if disconnected: pipe($out_r, my $out_w) or die "pipe: $!"; $lei->send_exec_cmd([ $in_r, $out_w ], $cmd, {}); } else { @@ -31,8 +31,12 @@ sub run ($$;$) { close $out_r or die "`git credential $op' failed: \$!=$! \$?=$?\n"; } -sub check_netrc ($) { - my ($self) = @_; +sub check_netrc { + my ($self, $lei) = @_; + + # n.b. lei doesn't load ~/.netrc by default, public-inbox-watch does, + # which may've been a mistake, but we have to live with it. + return if ($lei && !$lei->{opt}->{netrc}); # part of the standard library, but distributions may split it out eval { require Net::Netrc }; @@ -56,6 +60,7 @@ sub fill { $self->{$1} = $2; } close $out_r or die "git credential fill failed: \$!=$! \$?=$?\n"; + $self->{filled} = 1; } 1;