c54d3eabbc
You can now add your own hooks into src/hooks/ and they get propagated along with the update hook that is present there now. Please read the new section in the admin document, and make sure you understand the security implications of accidentally fiddling with the "update" script. This also prompted a major rename spree of all the files to be consistent, etc. Plus people said that the .sh and .pl suffixes should be avoided (and I was feeling the same way). I've also been inconsistent with that "gl-" prefix, so I cleaned that up, and the 00- and 99- were also funny animals. Time to get all this cleaned up before we get 1.0 :) So these are the changes, in case you're looking at just the commit message and not the diffstat: src/pta-hook.sh -> src/ga-post-update-hook src/conf-convert.pl -> src/gl-conf-convert src/00-easy-install.sh -> src/gl-easy-install src/99-emergency-addkey.sh -> src/gl-emergency-addkey src/install.pl -> src/gl-install src/update-hook.pl -> src/hooks/update
41 lines
1.3 KiB
Bash
Executable file
41 lines
1.3 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# what/why: re-establish gitolite admin access when admin key(s) lost
|
|
# where: on server (NOT client!)
|
|
|
|
# pre-req: shell access to the server (even with password is fine)
|
|
# pre-work: - make yourself a new keypair on your workstation
|
|
# - copy the pubkey and this script to the server
|
|
|
|
# usage: $0 admin_name client_host_shortname pubkeyfile
|
|
# notes: - admin_name should already have RW or RW+ access to the
|
|
# gitolite-admin repo
|
|
# - client_host_shortname is any simple word; see example below
|
|
|
|
# WARNING: ABSOLUTELY NO ARGUMENT CHECKING DONE
|
|
# WARNING: NEWER GITS ONLY ON SERVER SIDE (for now)
|
|
|
|
# example: $0 sitaram laptop /tmp/sitaram.pub
|
|
# result: a new keyfile named sitaram@laptop.pub would be added
|
|
|
|
# ENDHELP
|
|
|
|
[[ -z $1 ]] && { perl -pe "s(\\\$0)($0); last if /ENDHELP/" < $0; exit 1; }
|
|
|
|
set -e
|
|
|
|
cd
|
|
REPO_BASE=$( perl -e 'do ".gitolite.rc"; print $REPO_BASE' )
|
|
GL_ADMINDIR=$(perl -e 'do ".gitolite.rc"; print $GL_ADMINDIR')
|
|
|
|
cd; cd $GL_ADMINDIR/keydir; pwd
|
|
cp -v $3 $1@$2.pub
|
|
|
|
cd; cd $REPO_BASE/gitolite-admin.git; pwd
|
|
# XXX FIXME TODO -- fix this to work with older gits also
|
|
GIT_WORK_TREE=$GL_ADMINDIR git add keydir
|
|
GIT_WORK_TREE=$GL_ADMINDIR git commit -m "emergency add $1@$2.pub"
|
|
|
|
cd $GL_ADMINDIR
|
|
src/gl-compile-conf
|