7 [ "$cfg_mob" = "mob" ] ||
{ echo "mob support not enabled" >&2; exit 1; }
10 [ -d "$cfg_reporoot/$proj.git" ] ||
{ echo "Invalid project name: $1" >&2; exit 1; }
12 [ -f "$cfg_reporoot/$proj.git/.nofetch" ] ||
{ echo "Mirrors may not use mob: $1" >&2; exit 1; }
14 projdir
="$cfg_reporoot/$proj.git"
16 [ -L "$projdir/HEAD" ] ||
17 ! [ -f "$projdir/HEAD" ] ||
18 ! [ -f "$projdir/config" ] ||
19 ! [ -f "$projdir/description" ] ||
20 ! [ -f "$projdir/hooks/pre-receive" ] ||
21 ! [ -x "$projdir/hooks/pre-receive" ] ||
22 ! [ -f "$projdir/hooks/post-receive" ] ||
23 ! [ -x "$projdir/hooks/post-receive" ] ||
24 ! [ -f "$projdir/hooks/update" ] ||
25 ! [ -x "$projdir/hooks/update" ] ||
26 ! [ -d "$projdir/objects" ] ||
27 ! [ -d "$projdir/info" ]
29 echo "Incorrectly set up project: $1" >&2
37 echo "cd .. && GIT_DIR=. GIROCCO_PERSONAL_MOB=1 exec hooks/$1"
40 mkdir
-p "$projdir/refs/mob" "$projdir/mob/refs" "$projdir/mob/hooks"
41 chmod 02775 "$projdir/refs" "$projdir/refs/mob" \
42 "$projdir/mob" "$projdir/mob/refs" "$projdir/mob/hooks" ||
43 echo "Warning: could not chmod 02775 on all dirs"
45 for hook
in pre-receive post-receive
; do
46 if ! [ -x "$projdir/mob/hooks/$hook" ]; then
47 write_mob_hook
"$hook" >"$projdir/mob/hooks/$hook"
48 chmod 0775 "$projdir/mob/hooks/$hook"
51 [ -x "$projdir/mob/hooks/update" ] ||
ln -sfn ..
/..
/hooks
/update
"$projdir/mob/hooks/update"
53 [ -d "$projdir/mob/refs/heads" ] ||
ln -sfn ..
/..
/refs
/mob
"$projdir/mob/refs/heads"
54 [ -d "$projdir/mob/refs/mob" ] ||
ln -sfn ..
/..
/refs
/mob
"$projdir/mob/refs/mob"
56 [ -L "$projdir/mob/packed-refs" ] ||
ln -sfn ..
/packed-refs.mob
"$projdir/mob/packed-refs"
57 [ -d "$projdir/mob/objects" ] ||
ln -sfn ..
/objects
"$projdir/mob/objects"
58 [ -d "$projdir/mob/info" ] ||
ln -sfn ..
/info
"$projdir/mob/info"
59 [ -f "$projdir/mob/description" ] ||
ln -sfn ..
/description
"$projdir/mob/description"
60 [ -f "$projdir/mob/config" ] ||
ln -sfn ..
/config
"$projdir/mob/config"
62 cp -p -f "$projdir/HEAD" "$projdir/mob/HEAD.$$"
63 mv -f "$projdir/mob/HEAD.$$" "$projdir/mob/HEAD"
64 rm -f "$projdir/mob/HEAD.$$"
66 git
--git-dir="$projdir" for-each-ref
--format='%(objectname) %(refname)' >"$projdir/packed-refs.mob.$$" ||
:
67 if [ -s "$projdir/packed-refs.mob.$$" ]; then
68 mv -f "$projdir/packed-refs.mob.$$" "$projdir/packed-refs.mob"
70 rm -f "$projdir/packed-refs.mob.$$"