From d06c17ead70ec63962e296dd0f0d8c4a594b755a Mon Sep 17 00:00:00 2001 From: Jan Lindemann Date: Thu, 11 Jun 2015 13:40:16 +0000 Subject: [PATCH] git-srv-admin.sh: Support option -u Signed-off-by: Jan Lindemann --- scripts/git-srv-admin.sh | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/scripts/git-srv-admin.sh b/scripts/git-srv-admin.sh index e3bb8bcc..4ee446eb 100644 --- a/scripts/git-srv-admin.sh +++ b/scripts/git-srv-admin.sh @@ -95,24 +95,22 @@ list_personal_projects() } # ----------------- here we go -id=`whoami` -[ "$SUDO_UID" ] && { - id=`/opt/ytools/bin/getpwuid $SUDO_UID | sed '/^name *=/ !d; s/^name *= *//'` - [ "$id" ] || fatal "failed to find uid $SUDO_UID in user database" -} - -git_home=/srv/git/$id -pdir=$git_home/priv no_error_if_exists=0 +jannet_project=0 +id=`whoami` +user=$id OPTIND=1 -while getopts jh flag; do +while getopts jhu: flag; do case $flag in - j) - pdir=$git_home/proj;; h) usage 0;; + u) + user=$OPTARG + ;; + j) + jannet_project=1;; p) no_error_if_exist=1;; *) @@ -122,6 +120,19 @@ done shift $(($OPTIND - 1)) +if [ "$user" ]; then + id=$user +else + [ "$SUDO_UID" ] && { + id=`/opt/ytools/bin/getpwuid $SUDO_UID | sed '/^name *=/ !d; s/^name *= *//'` + [ "$id" ] || fatal "failed to find uid $SUDO_UID in user database" + } +fi + +git_home=/srv/git/$id +pdir=$git_home/priv +[ "$jannet_project" = 1 ] && pdir=$git_home/proj + cmd=$1 shift p=$1