]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/GitCredential.pm
No ext_urls
[public-inbox.git] / lib / PublicInbox / GitCredential.pm
index 2d81817c8d7cff1c8f996bdd0312ba09c2f498c2..b18bba1ec32454b29a03339a54c2ed53b17c008c 100644 (file)
@@ -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;