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=bd8582aaae2aaae9ccd4cff5b3e349b8767224ff;hb=b7dec4080f555d202570cd3293465db52a9139ec;hpb=2711b56a97437d8260ccac48b0699a8bfe9764a1 diff --git a/infra/dgit-ssh-dispatch b/infra/dgit-ssh-dispatch index bd8582aa..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; @@ -120,8 +124,9 @@ sub dispatch () { my $cmd=$1; selectpackage $2,$3; if ($cmd eq 'receive-pack') { - my $s = "$dgitlive/dgit-repos-server"; - exec $s, $suites, $authrune, $repos, qw(--ssh); + my $s = "$dgitlive/infra/dgit-repos-server"; + exec $s, $distro, $suites, $authrune, $repos, + $policyhook, qw(--ssh); die "exec $s: $!"; } elsif ($cmd eq 'upload-pack') { $repo='$repos/_empty' unless hasrepo;