X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=dgit;h=ae07145cb1e58d818d4a232a72cdf8c5737bf705;hb=2f3f7b330bf4f06c32bdb101fba8530d90399752;hp=2dd45befc7b75adca2ba9996aaf5ec9c9cb554fe;hpb=bd3c1a7b8a2d5c8d35bea0655ec95b313cda9df2;p=dgit.git diff --git a/dgit b/dgit index 2dd45bef..ae07145c 100755 --- a/dgit +++ b/dgit @@ -989,7 +989,16 @@ sub api_query ($$) { badcfg "ftpmasterapi archive query method takes no data part" if length $data; my @cmd = archive_api_query_cmd($subpath); + my $url = $cmd[$#cmd]; + push @cmd, qw(-w %{http_code}); my $json = cmdoutput @cmd; + unless ($json =~ s/\d+\d+\d$//) { + failedcmd_report_cmd undef, @cmd; + fail "curl failed to print 3-digit HTTP code"; + } + my $code = $&; + fail "fetch of $url gave HTTP code $code" + unless $url =~ m#^file://# or $code =~ m/^2/; return decode_json($json); } @@ -5010,6 +5019,7 @@ sub cmd_archive_api_query { badusage "need only 1 subpath argument" unless @ARGV==1; my ($subpath) = @ARGV; my @cmd = archive_api_query_cmd($subpath); + push @cmd, qw(-f); debugcmd ">",@cmd; exec @cmd or fail "exec curl: $!\n"; }