From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-4.0 required=3.0 tests=ALL_TRUSTED,BAYES_00 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id 9BD4B1F9F3 for ; Fri, 10 Sep 2021 09:08:50 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 3/4] lei: do not read ~/.netrc by default Date: Fri, 10 Sep 2021 09:08:49 +0000 Message-Id: <20210910090850.18906-4-e@80x24.org> In-Reply-To: <20210910090850.18906-1-e@80x24.org> References: <20210910090850.18906-1-e@80x24.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: Since ~/.netrc isn't widely used by most (if any) NNTP and IMAP clients, we won't read it by default for lei. AFAIK, ~/.netrc is mainly by FTP clients (e.g. ftp(1) and lftp(1)). wget uses it by default for HTTP(S) (and FTP), but curl does not. To avoid breaking stable release use cases, public-inbox-watch continues to read ~/.netrc by default. The --netrc switch is supported by all existing lei commands which may use curl. --- lib/PublicInbox/GitCredential.pm | 8 ++++++-- lib/PublicInbox/NetReader.pm | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/PublicInbox/GitCredential.pm b/lib/PublicInbox/GitCredential.pm index c83fed43..b18bba1e 100644 --- a/lib/PublicInbox/GitCredential.pm +++ b/lib/PublicInbox/GitCredential.pm @@ -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 }; diff --git a/lib/PublicInbox/NetReader.pm b/lib/PublicInbox/NetReader.pm index a0e52fc5..f0f56431 100644 --- a/lib/PublicInbox/NetReader.pm +++ b/lib/PublicInbox/NetReader.pm @@ -96,7 +96,7 @@ sub mic_for ($$$$) { # mic = Mail::IMAPClient $cred = undef; } if ($cred) { - my $p = $cred->{password} // $cred->check_netrc; + my $p = $cred->{password} // $cred->check_netrc($lei); $cred->fill($lei) unless defined($p); # may prompt user here $mic->User($mic_arg->{User} = $cred->{username}); $mic->Password($mic_arg->{Password} = $cred->{password}); @@ -191,7 +191,7 @@ sub nn_for ($$$$) { # nn = Net::NNTP }, 'PublicInbox::GitCredential'; ($u, $p) = split(/:/, $ui, 2); ($cred->{username}, $cred->{password}) = ($u, $p); - $p //= $cred->check_netrc; + $p //= $cred->check_netrc($lei); } my $common = $nn_common->{$sec} // {}; my $nn_arg = {