githooks=.githooks
githookspath="$git_root/$githooks"
+# If running as root, rerun via sudo as user $owner to ensure proper permissions
+if [ "$(whoami)" == "root" ]; then
+ sudo -u $owner $0 $*
+ exit $?
+fi
+
if [ "$(whoami)" != "$owner" ]; then
echo "$0: must run as user $owner" >&2
exit 1
shift
fi
-if [ $# -ne 1 ]; then
- echo "usage: $0 <repopath>" >&2
+if [ $# -lt 1 -o $# -gt 2 ]; then
+ echo "usage: $0 <repopath> [\"Short description\"]" >&2
exit 1
fi
repopath=$1
+repodesc=$2
if [ -e $git_root/$repopath ]; then
echo "$0: repository $repopath already exists" >&2
fi
mkdir -p "$git_root/$repodir" 2>/dev/null
if [ ! -d "$git_root/$repodir" ]; then
- echo "%0: repository not created, git subdir '$repodir' create failed" >&2
+ echo "$0: repository not created, git subdir '$repodir' create failed" >&2
exit 1
fi
fi
git --git-dir "$git_root/$repopath" init --bare
[ $? -ne 0 ] && exit 1
+# Update the description
+if [ -n "$2" ]; then
+ echo $2 > $git_root/$repopath/description
+fi
+
# Create symbolic links to any hook scripts in $githookspath
hooks="pre-receive post-receive update post-update"
backdir=$(echo "$repopath/hooks" | sed -e 's|[^/]*|..|g')