# dgit repos policy hook script for Debian
use strict;
+$SIG{__WARN__} = sub { die $_[0]; };
+
use POSIX;
use JSON;
use File::Temp qw(tempfile);
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;
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;
}
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 {
}
}
+sub getpackage () {
+ die unless @ARGV >= 1;
+ $pkg = shift @ARGV;
+ die unless $pkg =~ m/^$package_re$/;
+
+ statpackage();
+}
+
sub add_taint ($$) {
my ($refobj, $reason);