X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=infra%2Fdgit-repos-policy-debian;h=3353d42dd1998324442fc6f5a1ac26e4ca15b106;hp=3c7c006bc6c8b0edd271b5b0fb6c512cc8be9b33;hb=41d1bd6a6c194f11f906e1140861e976fac3f4e0;hpb=c02c4c21a1ae474acf22b09b400081d4e21fb149 diff --git a/infra/dgit-repos-policy-debian b/infra/dgit-repos-policy-debian index 3c7c006b..3353d42d 100755 --- a/infra/dgit-repos-policy-debian +++ b/infra/dgit-repos-policy-debian @@ -9,10 +9,14 @@ 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"; @@ -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"; } } @@ -381,7 +392,7 @@ sub action_check_list () { statpackage(); next unless $pkg_exists; next unless $pkg_secret; - print "$pkg\n" or die $!; + printdebug "$pkg\n" or die $!; } closedir L or die $!; close STDOUT or die $!; @@ -391,6 +402,7 @@ sub action_check_list () { $action =~ y/-/_/; my $fn = ${*::}{"action_$action"}; if (!$fn) { + printdebug "dgit-repos-policy-debian: unknown action $action\n"; exit 0; }