diff --git a/scripts/git-srv-admin.sh b/scripts/git-srv-admin.sh index d6333d9a..e3bb8bcc 100644 --- a/scripts/git-srv-admin.sh +++ b/scripts/git-srv-admin.sh @@ -69,17 +69,23 @@ create_project_dir() fatal "tried to create directory \"$dir\" as `whoami`, needs to be done as root" fi - md_p `dirname $dir` 750 root jannet - md_p $dir 770 root $id + md_p /srv/git 750 root cvs + md_p /srv/git/$id 750 root cvs + md_p `dirname $dir` 750 $id jannet + md_p $dir 02750 $id `id -g $id` } create_personal_project() { - [ -e $dir ] && fatal "$dir already exists" + [ -e $dir ] && { + err "$dir already exists" + test $no_error_if_exists -eq 0 + exit $? + } /usr/bin/sudo `readlink -f $0` create-project-dir $dir || fatal "failed to set root uid" cd $dir || fatal "failed to change to $dir" - git init --bare || fatal "git init failed" + git init --bare --shared=0640 || fatal "git init failed" } list_personal_projects() @@ -97,6 +103,7 @@ id=`whoami` git_home=/srv/git/$id pdir=$git_home/priv +no_error_if_exists=0 OPTIND=1 while getopts jh flag; do @@ -106,6 +113,8 @@ while getopts jh flag; do pdir=$git_home/proj;; h) usage 0;; + p) + no_error_if_exist=1;; *) usage 1;; esac