X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=infra%2Fdgit-repos-policy-debian;h=2e0bcc79af7034e9a253a3f532ad5d3003cb1bba;hb=ffcf3ccafd44190803adffa74730034fbba0b5ac;hp=3c7c006bc6c8b0edd271b5b0fb6c512cc8be9b33;hpb=ab3be575e6a64ca698684995a02563b3cb82f68a;p=dgit.git diff --git a/infra/dgit-repos-policy-debian b/infra/dgit-repos-policy-debian index 3c7c006b..2e0bcc79 100755 --- a/infra/dgit-repos-policy-debian +++ b/infra/dgit-repos-policy-debian @@ -9,17 +9,21 @@ use JSON; use File::Temp qw(tempfile); use DBI; use IPC::Open2; +use Data::Dumper; use Debian::Dgit qw(:DEFAULT :policyflags); use Debian::Dgit::Policy::Debian; +initdebug('%'); +enabledebuglevel $ENV{'DGIT_DRS_DEBUG'}; + 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; -our $new_upload_propagation_slop = 3600*4 + 100; +our $new_upload_propagation_slop = 3600*4 + 100;# fixme config; our $poldbh; our $pkg; @@ -79,11 +83,16 @@ our %deliberately; sub apiquery ($) { my ($subpath) = @_; local $/=undef; - my $cmd = "$dgitlive/dgit -d $distro ". - "\$DGIT_TEST_OPTS \$DGIT_TEST_DEBUG archive-api-query $subpath"; + my $cmd = "$dgitlive/dgit -d$distro \$DGIT_TEST_OPTS"; + $cmd .= " -".("D" x $debuglevel) if $debuglevel; + $cmd .= " archive-api-query $subpath"; + printdebug "apiquery $cmd\n"; $!=0; $?=0; my $json = `$cmd`; defined $json or die "$subpath $! $?"; - return decode_json $json; + my $r = decode_json $json; + my $d = new Data::Dumper([$r], [qw(r)]); + printdebug "apiquery $subpath | ", $d->Dump(), "\n" if $debuglevel>=2; + return $r; } sub specific_suite_has_vsn_in_our_history ($) { @@ -123,10 +132,12 @@ sub good_suite_has_vsn_in_our_history () { sub statpackage () { $pkgdir = "$repos/$pkg.git"; if (!stat_exists $pkgdir) { + printdebug "statpackage $pkg => ENOENT\n"; $pkg_exists = 0; } else { $pkg_exists = 1; $pkg_secret = !!(~(stat _)[2] & 05); + printdebug "statpackage $pkg => exists, secret=$pkg_secret.\n"; } } @@ -188,7 +199,7 @@ sub add_taint_by_tag ($$) { " removed from NEW (ie, rejected) (or never arrived)"); } -sub action__check_package () { +sub action_check_package () { getpackage(); return 0 unless $pkg_exists; return 0 unless $pkg_secret; @@ -248,8 +259,8 @@ sub action_push () { sub action_push_confirm () { getpackage(); - die unless @ARGV; - my $freshrepo = shift @ARGV; + die unless @ARGV >= 5; + my $freshrepo = $ARGV[4]; my $initq = $poldbh->prepare(<