#!/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= }