diff options
author | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2015-07-18 15:59:06 +0100 |
---|---|---|
committer | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2015-07-19 19:36:15 +0100 |
commit | 196d61f51d2191bf44d5bfe0ccb4456a59f0446a (patch) | |
tree | a8080e1e10058501730517609d2d20c441d12a41 | |
parent | 067e68de07f7d1cf1d406c4917e9cdd7b0b6f26a (diff) |
Provide for checking git presence via http[s].
-rw-r--r-- | debian/changelog | 1 | ||||
-rwxr-xr-x | dgit | 18 |
2 files changed, 19 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog index c6b28b5..6081671 100644 --- a/debian/changelog +++ b/debian/changelog @@ -14,6 +14,7 @@ dgit (0.31~~) unstable; urgency=low Access machinery: * Provide for different access mechanisms when pushing. * Provide for configurable git url suffix. + * Provide for checking git presence via http[s]. * Do some quoting on debug output (needed if the server might not be trustworthy and might send us bad stuff). @@ -1058,6 +1058,24 @@ sub check_for_git () { } failedcmd @cmd unless $r =~ m/^[01]$/; return $r+0; + } elsif ($how eq 'url') { + my $prefix = access_cfg('git-check-url','git-url'); + my $suffix = access_cfg('git-check-suffix','git-suffix', + 'RETURN-UNDEF') // '.git'; + my $url = "$prefix/$package$suffix"; + my @cmd = (qw(curl -sS -I), $url); + my $result = cmdoutput @cmd; + $result =~ m/^\S+ (404|200) /s or + fail "unexpected results from git check query - ". + Dumper($prefix, $result); + my $code = $1; + if ($code eq '404') { + return 0; + } elsif ($code eq '200') { + return 1; + } else { + die; + } } elsif ($how eq 'true') { return 1; } elsif ($how eq 'false') { |