summaryrefslogtreecommitdiff
path: root/dgit
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2015-07-18 15:59:06 +0100
committerIan Jackson <ijackson@chiark.greenend.org.uk>2015-07-19 19:36:15 +0100
commit196d61f51d2191bf44d5bfe0ccb4456a59f0446a (patch)
treea8080e1e10058501730517609d2d20c441d12a41 /dgit
parent067e68de07f7d1cf1d406c4917e9cdd7b0b6f26a (diff)
Provide for checking git presence via http[s].
Diffstat (limited to 'dgit')
-rwxr-xr-xdgit18
1 files changed, 18 insertions, 0 deletions
diff --git a/dgit b/dgit
index 8f4a71c..70ff8c4 100755
--- a/dgit
+++ b/dgit
@@ -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') {