6ad6bf95e6
otherwise repo names containing "@" in them were causing the @foo part to be interpolated (as empty of course) instead of being taken literally reported by silvio dot fricke at googlemail
57 lines
1.7 KiB
Bash
57 lines
1.7 KiB
Bash
#!/bin/sh
|
|
|
|
# please make sure this file is NOT chmod +x
|
|
|
|
# ------------------------------------------------------------------------------
|
|
|
|
# settings for various ADCs, collected in one place for ease of keeping local
|
|
# settings intact during upgrades (you only have to worry about this file
|
|
# now). Documentation for the variables, however, is in the respective ADC
|
|
|
|
# settings for 'rm' ADC
|
|
ARE_YOU_SURE=1
|
|
USE_LOCK_UNLOCK=1
|
|
|
|
# settings for 'trash' ADC
|
|
TRASH_CAN=$GL_REPO_BASE_ABS/deleted
|
|
TRASH_SUFFIX=`date +%Y-%m-%d_%H:%M:%S`
|
|
|
|
# settings for 'hub' ADC
|
|
BASE_FETCH_URL="git://gl.example.com"
|
|
GL_FORKED_FROM="gl-forked-from"
|
|
# KDE may set this to kde-cloned-from for historical reasons
|
|
|
|
# ------------------------------------------------------------------------------
|
|
|
|
die() { echo "$@"; exit 1; }
|
|
|
|
# test an option value more concisely
|
|
opt() {
|
|
[ "$1" = "1" ] && return 0
|
|
return 1
|
|
}
|
|
|
|
valid_owned_repo() {
|
|
# check that an arg passed is a valid repo and the current user owns it
|
|
[ -z "$1" ] && die need a repo name
|
|
get_rights_and_owner $1
|
|
[ "$owner" = "$GL_USER" ] || die "$repo does not exist or is not yours!"
|
|
|
|
# and we sneak this in too, quietly :)
|
|
cd $GL_REPO_BASE_ABS
|
|
}
|
|
|
|
# NOTE: this also sets $repo to the normalised (without .git suffix) reponame
|
|
get_rights_and_owner() {
|
|
local ans
|
|
repo=${1%.git}
|
|
ans=$(perl -I$GL_BINDIR -Mgitolite -e "cli_repo_rights('"$repo"')")
|
|
|
|
# set shell variables as needed
|
|
owner=${ans#* }
|
|
rights=${ans% *}
|
|
echo $rights | grep C >/dev/null 2>&1 && perm_create=yes || perm_create=
|
|
echo $rights | grep R >/dev/null 2>&1 && perm_read=yes || perm_read=
|
|
echo $rights | grep W >/dev/null 2>&1 && perm_write=yes || perm_write=
|
|
}
|