Re: [PATCH] honour GIT_ASKPASS for querying username in git-svn
- From
- Sven Strickroth <sven.strickroth@tu-clausthal.de>
- Date
- Dec 27, 2011, 14:39 UTC
- Message-ID
- <4EF9D8B9.9060106@tu-clausthal.de>
- In-Reply-To
- <m3d3baf5kd.fsf@localhost.localdomain>
Am 27.12.2011 15:33 schrieb Jakub Narebski:
Show 14 quoted lines
>> +sub prompt {
>> + my ($self, $prompt) = _maybe_self(@_);
>> + if (exists $ENV{'GIT_ASKPASS'}) {
>> + return _prompt($ENV{'GIT_ASKPASS'}, $prompt);
>> + } elsif (exists $ENV{'SSH_ASKPASS'}) {
>> + return _prompt($ENV{'SSH_ASKPASS'}, $prompt);
>> + } else {
>> + return undef;
>> + }
>> +}
>
> ...and provide some kind of fallback even if neither of GIT_ASKPASS
> nor SSH_ASKPASS are set (perhaps assuming that some Perl packages from
> CPAN are installed).If neither of GIT_ASKPASS nor SSH_ASKPASS are set the caller has to handle the request. This has to be done this way, because of lots of different needs (username, password (no echo) and so on).
Show 12 quoted lines
>> +sub _prompt {
>> + my ($self, $askpass, $prompt) = _maybe_self(@_);
>> + my $ret;
>> + open(PH, "-|", $askpass, $prompt);
>> + $ret = <PH>;
>> + $ret =~ s/[\012\015]//g; # strip \n\r
>> + close(PH);
>> + return $ret;
>> +}
>
> Please, use modern Perl, in particula use lexical filehandles instead
> of typeglobs (which are global variables), i.e.I used the same style as I found in Git.pm (see lines I removed in patch 2).
-- Best regards, Sven Strickroth ClamAV, a GPL anti-virus toolkit http://www.clamav.net PGP key id F5A9D4C4 @ any key-server