(contrib) how to enable or disable push for maintenance

...for some or all repos

(and a minor bug fix in the adc.common-functions file)
This commit is contained in:
Sitaram Chamarty 2010-05-31 20:39:45 +05:30
parent b4c1627130
commit 5bbd102059
3 changed files with 87 additions and 2 deletions

46
contrib/adc/able Executable file
View file

@ -0,0 +1,46 @@
#!/bin/bash
# WARNING: USES BASH FEATURES...
. $(dirname $0)/adc.common-functions
get_rights_and_owner gitolite-admin
[[ -z $perm_write ]] && die "just *what* are you trying to pull, young man?"
op=$1
shift
locs=
while [[ -n $1 ]]
do
case $1 in
'@all' )
locs="$locs $HOME"
;;
* )
[ -d $loc ] && locs="$locs $GL_REPO_BASE_ABS/$1.git"
[ -d $loc ] || echo "ignoring $1..."
;;
esac
shift
done
case $op in
en|enable )
for l in $locs
do
rm -fv $l/.gitolite.down
done
;;
dis|disable )
[[ -t 0 ]] && printf message:
read msg <<<$(cat)
for l in $locs
do
echo $msg > $l/.gitolite.down
done
;;
* )
die "argument 1 must be 'en' or 'dis'"
;;
esac

View file

@ -6,7 +6,7 @@ die() { echo "$@"; exit 1; }
get_rights_and_owner() {
local ans
ans=$(perl -I$HOME/.gitolite/src -Mgitolite -e 'cli_repo_rights("'$1'")')
ans=$(perl -I$GL_BINDIR -Mgitolite -e 'cli_repo_rights("'$1'")')
# set shell variables as needed
owner=${ans#* }