X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=infra%2Fdgit-repos-policy-debian;h=cdfa80e702f9efdf66a84aca3b38c56cb8449950;hp=526db03db8660f252e73355b33d28749e5d6d2cf;hb=08350aa0ad7092bd26e7fff5a563dec7a4e682e7;hpb=a90a93dc51850eef80e50f95b44f3e3aa09a613c diff --git a/infra/dgit-repos-policy-debian b/infra/dgit-repos-policy-debian index 526db03d..cdfa80e7 100755 --- a/infra/dgit-repos-policy-debian +++ b/infra/dgit-repos-policy-debian @@ -2,6 +2,8 @@ # dgit repos policy hook script for Debian use strict; +$SIG{__WARN__} = sub { die $_[0]; }; + use POSIX; use JSON; use File::Temp qw(tempfile); @@ -13,6 +15,7 @@ use Debian::Dgit::Policy::Debian; our $distro = shift @ARGV // die "need DISTRO"; our $repos = shift @ARGV // die "need DGIT-REPOS-DIR"; +our $dgitlive = shift @ARGV // die "need DGIT-LIVE-DIR"; our $action = shift @ARGV // die "need ACTION"; our $publicmode = 02775; @@ -76,7 +79,9 @@ our %deliberately; sub apiquery ($) { my ($subpath) = @_; local $/=undef; - $!=0; $?=0; my $json = `dgit -d $distro archive-api-query $subpath`; + my $cmd = "$dgitlive/dgit -d $distro ". + "\$DGIT_TEST_OPTS \$DGIT_TEST_DEBUG archive-api-query $subpath"; + $!=0; $?=0; my $json = `$cmd`; defined $json or die "$subpath $! $?"; return decode_json $json; } @@ -115,12 +120,8 @@ sub good_suite_has_vsn_in_our_history () { return 0; } -sub getpackage () { - die unless @ARGV >= 1; - $pkg = shift @ARGV; - die unless $pkg =~ m/^$package_re$/; - - $pkgdir = "$repos/$pkg"; +sub statpackage () { + $pkgdir = "$repos/$pkg.git"; if (!stat_exists $pkgdir) { $pkg_exists = 0; } else { @@ -129,6 +130,14 @@ sub getpackage () { } } +sub getpackage () { + die unless @ARGV >= 1; + $pkg = shift @ARGV; + die unless $pkg =~ m/^$package_re$/; + + statpackage(); +} + sub add_taint ($$) { my ($refobj, $reason);