diff options
author | David Bremner <bremner@debian.org> | 2017-07-03 21:09:50 -0300 |
---|---|---|
committer | David Bremner <bremner@debian.org> | 2017-07-03 21:09:50 -0300 |
commit | abea1a643d0afd8fd56658048d46aac2c215dc63 (patch) | |
tree | d82dee8ad23b57e0507b9f4253657b53341108a7 /src/triggers/post-compile/update-git-daemon-access-list |
Import gitolite3_3.6.7.orig.tar.gz
[dgit import orig gitolite3_3.6.7.orig.tar.gz]
Diffstat (limited to 'src/triggers/post-compile/update-git-daemon-access-list')
-rwxr-xr-x | src/triggers/post-compile/update-git-daemon-access-list | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/triggers/post-compile/update-git-daemon-access-list b/src/triggers/post-compile/update-git-daemon-access-list new file mode 100755 index 0000000..446b0da --- /dev/null +++ b/src/triggers/post-compile/update-git-daemon-access-list @@ -0,0 +1,41 @@ +#!/usr/bin/perl + +# update git-daemon-export-ok files in each repo +# ---------------------------------------------------------------------- + +use lib $ENV{GL_LIBDIR}; +use Gitolite::Rc; +use Gitolite::Easy; +use Gitolite::Common; + +use strict; +use warnings; + +# ---------------------------------------------------------------------- +# skip if arg-0 is POST_CREATE and no arg-2 (user name) exists; this means +# it's been triggered by a *normal* (not "wild") repo creation, which in turn +# means a POST_COMPILE should be following so there's no need to waste time +# running this once for each new repo +exit 0 if @ARGV and $ARGV[0] eq 'POST_CREATE' and not $ARGV[2]; + +my $EO = "git-daemon-export-ok"; +my $RB = $rc{GL_REPO_BASE}; + +for my $d (`gitolite list-phy-repos | gitolite access % daemon R any`) { + my @F = split "\t", $d; + if ($F[2] =~ /DENIED/) { + unlink "$RB/$F[0].git/$EO"; + } else { + textfile( file => $EO, repo => $F[0], text => "" ); + } +} + +# As a quick recap, the gitolite output looks somewhat like this: + +# bar^Idaemon^IR any bar daemon DENIED by fallthru$ +# foo^Idaemon^Irefs/.*$ +# fubar^Idaemon^Irefs/.*$ +# gitolite-admin^Idaemon^IR any gitolite-admin daemon DENIED by fallthru$ +# testing^Idaemon^Irefs/.*$ + +# where I've typed "^I" to denote a tab. |