#!/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 'htpasswd' to the ENABLE list). =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 <; $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;