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=b515edad988391635275fd4c54c7400a2eb7e9aa;hb=6fff08035c6fb48fab8f804d965541f7486b8249;hpb=1b2c10f57b0257aac61a696378e9c8c05df8bf4f diff --git a/infra/dgit-ssh-dispatch b/infra/dgit-ssh-dispatch index b515edad..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, $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;