diff options
author | Eric Wong <e@yhbt.net> | 2020-06-27 10:03:58 +0000 |
---|---|---|
committer | Eric Wong <e@yhbt.net> | 2020-06-28 22:29:39 +0000 |
commit | 6968c91707d51f6a60d476cc2f5d65a660146813 (patch) | |
tree | 4f8d1309f9b9b0c50de80b17ca869d8bb5499e13 /lib/PublicInbox/GitCredential.pm | |
parent | ab58bcb9909967503bc4ed810f2053b8ed6efb2e (diff) | |
download | public-inbox-6968c91707d51f6a60d476cc2f5d65a660146813.tar.gz |
While git-credential-netrc exists in git.git contrib/, it may not be widely known or installed. Net::Netrc is already a standard part of most (if not all) Perl installations, so use it directly if available.
Diffstat (limited to 'lib/PublicInbox/GitCredential.pm')
-rw-r--r-- | lib/PublicInbox/GitCredential.pm | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/PublicInbox/GitCredential.pm b/lib/PublicInbox/GitCredential.pm index 826e7a55..c6da6a09 100644 --- a/lib/PublicInbox/GitCredential.pm +++ b/lib/PublicInbox/GitCredential.pm @@ -25,6 +25,21 @@ sub run ($$) { close $out_r or die "`git credential $op' failed: \$!=$! \$?=$?\n"; } +sub check_netrc ($) { + my ($self) = @_; + + # part of the standard library, but distributions may split it out + eval { require Net::Netrc }; + if ($@) { + warn "W: Net::Netrc missing: $@\n"; + return; + } + if (my $x = Net::Netrc->lookup($self->{host}, $self->{username})) { + $self->{username} //= $x->login; + $self->{password} = $x->password; + } +} + sub fill { my ($self) = @_; my $out_r = run($self, 'fill'); |