fda10c2805
conf/example.gitolite.rc - "slave mode" flag to disable pushes and "list of slaves" hooks/common/post-receive.mirrorpush - code to push to the mirror, creating the repo if needed src/mirror-shell - shell for master pushing to a slave, because we don't actually want to go through gitolite itself, yet we have to take care of $REPO_BASE being wherever. And of course we have to set GL_BYPASS_UPDATE_HOOK to 1 for the push to happen! src/gl-mirror-sync - manually runnable program to sync from current server to another
21 lines
684 B
Bash
Executable file
21 lines
684 B
Bash
Executable file
#!/bin/bash
|
|
|
|
export GL_BYPASS_UPDATE_HOOK
|
|
GL_BYPASS_UPDATE_HOOK=1
|
|
|
|
export REPO_BASE=`cd $HOME;perl -e 'do ".gitolite.rc"; print $REPO_BASE' `
|
|
if echo $SSH_ORIGINAL_COMMAND | egrep git-upload\|git-receive >/dev/null
|
|
then
|
|
|
|
# the (special) admin post-update hook needs these, so we cheat
|
|
export GL_ADMINDIR
|
|
export GL_BINDIR
|
|
GL_ADMINDIR=` cd $HOME;perl -e 'do ".gitolite.rc"; print $GL_ADMINDIR'`
|
|
GL_BINDIR=`echo $0 | perl -lpe 's/^/$ENV{PWD}\// unless /^\//; s/\/[^\/]+$//;'`
|
|
|
|
SSH_ORIGINAL_COMMAND=`echo $SSH_ORIGINAL_COMMAND | sed -e "s/'/'$REPO_BASE\//"`
|
|
exec git shell -c "$SSH_ORIGINAL_COMMAND"
|
|
else
|
|
bash -c "cd $REPO_BASE; $SSH_ORIGINAL_COMMAND"
|
|
fi
|