X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=infra%2Fdgit-ssh-dispatch;h=4769d895830f5aa154e49fc0cc94f069a9e68bb4;hp=88311ee37bf6cac0df28c0ab8a3fb1bdd424d2ca;hb=34eb5dad67ac7e3353016d3a109b8e78fb780655;hpb=26ce53b790d76b41fe893d279e9ceb37bb81a3fe diff --git a/infra/dgit-ssh-dispatch b/infra/dgit-ssh-dispatch index 88311ee3..4769d895 100755 --- a/infra/dgit-ssh-dispatch +++ b/infra/dgit-ssh-dispatch @@ -3,6 +3,8 @@ use strict; use POSIX; +use Debian::Dgit; + open DEBUG, '>/dev/null' or die $!; if (@ARGV && $ARGV[0] eq '-D') { shift @ARGV; @@ -16,7 +18,7 @@ $authrune //= join ':', '@/keyrings/debian-keyring.gpg,a', '@/keyrings/debian-maintainers.gpg,m@/dm.txt'; -our $lre = '[0-9a-z][-+.0-9a-z]*'; +our $lre = $package_re; our $qre = '["'."']?"; # $dispatchdir should contain @@ -24,6 +26,7 @@ our $qre = '["'."']?"; # repos/ # suites # diverts +# policy-hook # plus files required by the authrune (by default, keyrings/ and dm.txt) # # diverts should be list of @@ -31,7 +34,7 @@ our $qre = '["'."']?"; # where is a package name pattern which may contain * or literals. our ($distro,$pkg); -our ($dgitlive,$repos,$suites,$diverts,$repo); +our ($dgitlive,$repos,$suites,$diverts,$policyhook,$repo); sub checkdivert ($) { my ($df) = @_; @@ -80,6 +83,7 @@ sub selectpackage ($$;$) { $dgitlive= "$d/dgit-live"; $repos= "$d/repos"; $suites= "$d/suites"; + $policyhook= "$d/policy-hook"; $authrune =~ s/\@/$d/g; @@ -121,7 +125,8 @@ sub dispatch () { selectpackage $2,$3; if ($cmd eq 'receive-pack') { my $s = "$dgitlive/infra/dgit-repos-server"; - exec $s, $distro, $suites, $authrune, $repos, qw(--ssh); + exec $s, $distro, $suites, $authrune, $repos, + $policyhook, qw(--ssh); die "exec $s: $!"; } elsif ($cmd eq 'upload-pack') { $repo='$repos/_empty' unless hasrepo;