#!/bin/bash

[ $# -lt 1 ] && { echo 2>&1 "usage: repos1 [repos2 ...]"; exit 1; }

: ${to_user:=$USER}
: ${to_grp:=www}

prim_grp=$(getent passwd $to_user | cut -d : -f 4)

shopt -s nullglob

for repos in $*; do
	cd $repos || { echo 2>&1 cannot change dir into repos. Exit; exit 1; }
	test -d db || { echo 2>&1 $repos is not a repository. Exit; exit 1; }

	chown -v  $to_user:$to_grp 	.		| grep -v retained
	chmod 750			.

	chmod 644			format README*
	chown -v $to_user:$prim_grp 	format README*	| grep -v retained

	chmod 750			hooks
	chown -v $to_user:$to_grp 	hooks		| grep -v retained
	chown -v $to_user:$prim_grp	hooks/*		| grep -v retained

	mkdir -p dav
	for i in db dav locks; do
		chown -v -R $to_user:$to_grp $i 	| grep -v retained
		chmod 2770 $i

		# contents
		find $i -type d -print0 | xargs -0r chmod ug+wx
		find $i -type f -print0 | xargs -0r chmod 0660
		find $i -print0 | xargs -0r chown -v $to_user:$to_grp | grep -v retained
	done

	chown -v $to_user:$prim_grp	hooks/*		| grep -v retained

	cd -

done

exit 0
