summaryrefslogtreecommitdiff
path: root/src/triggers/post-compile/update-gitweb-access-list
diff options
context:
space:
mode:
authorSitaram Chamarty <sitaram@atc.tcs.com>2017-09-25 15:57:47 +0530
committerSitaram Chamarty <sitaram@atc.tcs.com>2017-09-25 15:58:55 +0530
commitc3ae5995f7d439dde8e764229865a37f0764e544 (patch)
tree3be30b5154a8bba5004f4d4d16e17d1a4bb3ce65 /src/triggers/post-compile/update-gitweb-access-list
parentcf423a6a74b398eaa1dd67966ab2e02ff422274a (diff)
optimise the single-repo POST_CREATE cases a bit...
...I was lazily letting them run over ALL repos. (And I am still lazy because I did not do one of them yet; see comments in that file).
Diffstat (limited to 'src/triggers/post-compile/update-gitweb-access-list')
-rwxr-xr-xsrc/triggers/post-compile/update-gitweb-access-list22
1 files changed, 17 insertions, 5 deletions
diff --git a/src/triggers/post-compile/update-gitweb-access-list b/src/triggers/post-compile/update-gitweb-access-list
index e3dae80..4085d59 100755
--- a/src/triggers/post-compile/update-gitweb-access-list
+++ b/src/triggers/post-compile/update-gitweb-access-list
@@ -18,11 +18,23 @@ plf=`gitolite query-rc GITWEB_PROJECTS_LIST`
tmpfile=`mktemp $plf.tmp_XXXXXXXX`
rm -f $tmpfile;
-(
- gitolite list-phy-repos | gitolite access % gitweb R any | grep -v DENIED
- gitolite list-phy-repos | gitolite git-config -r % gitweb\\.
-) |
- cut -f1 | sort -u | sed -e 's/$/.git/' > $tmpfile
+if [ "$1" = "POST_CREATE" ] && [ -n "$2" ]
+then
+ # just one to be done
+ repo="$2"
+ grep -v "^$repo.git$" $plf > $tmpfile
+ if gitolite access -q $repo gitweb R any || gitolite git-config -q -r $repo gitweb\\.
+ then
+ echo "$repo.git" >> $tmpfile
+ fi
+else
+ # all of them
+ (
+ gitolite list-phy-repos | gitolite access % gitweb R any | grep -v DENIED
+ gitolite list-phy-repos | gitolite git-config -r % gitweb\\.
+ ) |
+ cut -f1 | sort -u | sed -e 's/$/.git/' > $tmpfile
+fi
[ -f $plf ] && perl -e "chmod ( ( (stat('$plf'))[2] & 07777 ), '$tmpfile')"
mv $tmpfile $plf