summaryrefslogtreecommitdiff
path: root/infra
diff options
context:
space:
mode:
Diffstat (limited to 'infra')
-rwxr-xr-xinfra/dgit-repos-policy-debian4
-rwxr-xr-xinfra/dgit-repos-server3
-rwxr-xr-xinfra/dgit-ssh-dispatch5
3 files changed, 9 insertions, 3 deletions
diff --git a/infra/dgit-repos-policy-debian b/infra/dgit-repos-policy-debian
index a770c55..339081e 100755
--- a/infra/dgit-repos-policy-debian
+++ b/infra/dgit-repos-policy-debian
@@ -86,7 +86,9 @@ our %deliberately;
sub apiquery ($) {
my ($subpath) = @_;
local $/=undef;
- my $cmd = "$dgitlive/dgit -d$distro \$DGIT_TEST_OPTS";
+ my $dgit = "$dgitlive/dgit";
+ $dgit = "dgit" if !stat_exists $dgit;
+ my $cmd = "$dgit -d$distro \$DGIT_TEST_OPTS";
$cmd .= " -".("D" x $debuglevel) if $debuglevel;
$cmd .= " archive-api-query $subpath";
printdebug "apiquery $cmd\n";
diff --git a/infra/dgit-repos-server b/infra/dgit-repos-server
index b43d574..50cba57 100755
--- a/infra/dgit-repos-server
+++ b/infra/dgit-repos-server
@@ -163,7 +163,8 @@ $SIG{__WARN__} = sub { die $_[0]; };
# appropriate lock.
#
# If policy hook wants to run dgit (or something else in the dgit
-# package), it should use DGIT-LIVE-DIR/dgit (etc.)
+# package), it should use DGIT-LIVE-DIR/dgit (etc.), or if that is
+# ENOENT, use the installed version.
use POSIX;
diff --git a/infra/dgit-ssh-dispatch b/infra/dgit-ssh-dispatch
index f525055..6d4efbf 100755
--- a/infra/dgit-ssh-dispatch
+++ b/infra/dgit-ssh-dispatch
@@ -22,7 +22,7 @@ our $lre = $package_re;
our $qre = '["'."']?";
# $dispatchdir/distro=DISTRO should contain
-# dgit-live a clone of dgit
+# dgit-live a clone of dgit (only if not using installed vsns)
# diverts
# repos/ } by virtue of
# suites } dgit-repos-server's defaults relating to
@@ -134,6 +134,7 @@ sub dispatch () {
$ENV{'PERLLIB'} =~ s#^(?=.)#:#;
$ENV{'PERLLIB'} =~ s#^# $ENV{DGIT_TEST_INTREE} // $dgitlive #e;
my $s = "$dgitlive/infra/dgit-repos-server";
+ $s = "dgit-repos-server" if !stat_exists $s;
exec $s, $distro, $d, $authrune, qw(--ssh);
die "exec $s: $!";
} elsif ($cmd eq 'upload-pack') {
@@ -146,6 +147,8 @@ sub dispatch () {
m#^${qre}git-upload-pack ${qre}/dgit/($lre)/(?:repos/)?_dgit-repos-server\.git${qre}$#
) {
my $distro= $1;
+ # if running installed packages, source code should come
+ # some other way
serve_up("$dispatchdir/distro=$1/dgit-live/.git");
} elsif (m#^${qre}git-upload-pack\s#) {
die "unknown repo to serve ($_). use dgit, or for server source ".