X-Git-Url: http://git.hcoop.net/clinton/scripts.git/blobdiff_plain/3b680833c805f253589bf32da47ce46bc344cd25..4a28134805dfc5b6bef1843f5716961a1bf9954f:/hcoop-git-maint diff --git a/hcoop-git-maint b/hcoop-git-maint index e9f20f6..bf4b278 100755 --- a/hcoop-git-maint +++ b/hcoop-git-maint @@ -4,15 +4,24 @@ # Update symlinks to user git repo locations. find /afs/hcoop.net/user -mindepth 3 -maxdepth 3 -noleaf -exec \ - sh -c "test -e {}/.hcoop-git && \ - ln -s {}/.hcoop-git/ /var/cache/git/\$(basename {}) 2>/dev/null" \; + sh -c "test -e {}/.hcoop-git && { \ + rm -f /var/cache/git/\$(basename {}); \ + ln -sf {}/.hcoop-git /var/cache/git/\$(basename {}); }" \; # Remove symlinks for users that have wrong permissions -find /afs/hcoop.net/user -mindepth 3 -maxdepth 3 -noleaf -exec \ - sh -c "test ! -e {}/.hcoop-git || \ - ! { fs la {}/.hcoop-git | \ - egrep '^ +system:anyuser .*r' > /dev/null; } && \ - rm -f /var/cache/git/\$(basename {}) 2>/dev/null" \; +IFS=$'\n' +for user in $(ls -1 /var/cache/git); do + if ! test -e $(readlink /var/cache/git/$user); then + rm -f /var/cache/git/$user + continue + fi + gitpath=$(readlink /var/cache/git/$user) + find -L $gitpath -noleaf -type d \ + ! -regex '.*/\(refs\|objects\)\(/.*\|$\)' -exec \ + sh -c "! { fs la {} | \ + egrep '^ +system:anyuser .*r' > /dev/null; } && \ + rm -f /var/cache/git/$user 2>/dev/null" \; +done # Update cache of front page. cache=/var/local/lib/gitweb/indexcache.html