migrated htpasswd command from g2.
(with some fixups by committer)
This commit is contained in:
parent
49d132a969
commit
47a0c44540
44
src/commands/htpasswd
Executable file
44
src/commands/htpasswd
Executable file
|
@ -0,0 +1,44 @@
|
||||||
|
#!/usr/bin/perl
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
|
||||||
|
use lib $ENV{GL_LIBDIR};
|
||||||
|
use Gitolite::Rc;
|
||||||
|
use Gitolite::Common;
|
||||||
|
|
||||||
|
=for usage
|
||||||
|
Usage: ssh git@host htpasswd
|
||||||
|
|
||||||
|
Sets your htpasswd, assuming your admin has enabled it.
|
||||||
|
|
||||||
|
(Admins: You need to add HTPASSWD_FILE to the rc file, pointing to an
|
||||||
|
existing, writable, but possibly an initially empty, file, as well as adding
|
||||||
|
an entry for 'htpasswd' to the COMMANDS hash).
|
||||||
|
=cut
|
||||||
|
|
||||||
|
# usage and sanity checks
|
||||||
|
usage() if @ARGV and $ARGV[0] eq '-h';
|
||||||
|
$ENV{GL_USER} or _die "GL_USER not set";
|
||||||
|
my $htpasswd_file = $rc{HTPASSWD_FILE} || '';
|
||||||
|
die "htpasswd not enabled\n" unless $htpasswd_file;
|
||||||
|
die "$htpasswd_file doesn't exist or is not writable\n" unless -w $htpasswd_file;
|
||||||
|
|
||||||
|
# prompt
|
||||||
|
$|++;
|
||||||
|
print <<EOFhtp;
|
||||||
|
Please type in your new htpasswd at the prompt. You only have to type it once.
|
||||||
|
|
||||||
|
NOTE THAT THE PASSWORD WILL BE ECHOED, so please make sure no one is
|
||||||
|
shoulder-surfing, and make sure you clear your screen as well as scrollback
|
||||||
|
history after you're done (or close your terminal instance).
|
||||||
|
|
||||||
|
EOFhtp
|
||||||
|
print "new htpasswd: ";
|
||||||
|
|
||||||
|
# get the password and run htpasswd
|
||||||
|
my $password = <>;
|
||||||
|
$password =~ s/[\n\r]*$//;
|
||||||
|
die "empty passwords are not allowed\n" unless $password;
|
||||||
|
my $res = system("htpasswd", "-mb", $htpasswd_file, $ENV{GL_USER}, $password);
|
||||||
|
die "htpasswd command seems to have failed with return code: $res.\n" if $res;
|
Loading…
Reference in a new issue