5b3dcb3757
- get_rights_and_owner normalises its arg1 by stripping .git if supplied, then sets the variable "repo" to the result as a side effect - new "help" adc with some default text but main purpose is to allow site local help text - other adc's refer to 'help' adc when appropriate - 'undelete' renamed to 'restore'; that's what the KDE "trashcan" program calls that operation - minor typo in sample script in documentation - main adc doc points to contrib/adc/repo-deletion.README now
52 lines
1.5 KiB
Bash
52 lines
1.5 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`
|
|
|
|
# ------------------------------------------------------------------------------
|
|
|
|
# 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
|
|
}
|
|
|
|
die() { echo "$@"; exit 1; }
|
|
|
|
# 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=
|
|
}
|