31243a70e92476b5741ae44f4dd9c0a28d79be5d
[girocco.git] / fixupd / fixup.sh
blob31243a70e92476b5741ae44f4dd9c0a28d79be5d
1 #!/bin/bash
3 # THIS SCRIPT IS BEING RUN UNDER ROOT!!!
5 # [repo.or.cz] You will need to manually update this file if you modify
6 # it in the repository.
8 set -e
10 proj="$1"
11 groupfile="$2"
12 mirror_user="$3"
14 ## Girocco::Config::chroot
15 chroot="/home/repo/j"
17 # disallow paths containing ../
18 case "$proj" in
19 *../*)
20 echo "Invalid path" >&2
21 exit 1
23 esac
24 cd "$proj.git"
26 chmod ug+rw,o+r . -R 2>&1 | (grep -v 'No such file or directory' || true)
28 [ -e .nofetch ] || exit
30 xproj="$(echo "$proj" | sed 's/[.\/]/\\&/g')"
31 gid="$(sed -ne "/^$xproj:/ { s/^[^:]*:[^:]*:\([0-9]*\):.*/\1/; p }" "$groupfile")"
32 if [ -z "$gid" ]; then
33 echo "cannot resolve gid for $proj ($xproj)" >&2
34 exit 1
37 chown "$mirror_user"."$gid" info refs packed-refs objects -R 2>&1 | (grep -v 'No such file or directory' || true)