chiark
/
gitweb
/
~ianmdlvl
/
dgit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
archive_query: Support further arguments to methods
[dgit.git]
/
dgit
diff --git
a/dgit
b/dgit
index 6d9bacae4b32e9b1b01d55fe4a852f1311dd36d4..7060df2786ff570379cc3b1dfe7f678ca66c9e39 100755
(executable)
--- a/
dgit
+++ b/
dgit
@@
-962,13
+962,13
@@
sub must_getcwd () {
our %rmad;
our %rmad;
-sub archive_query ($) {
- my ($method) = @_;
+sub archive_query ($
;@
) {
+ my ($method) =
shift
@_;
my $query = access_cfg('archive-query','RETURN-UNDEF');
$query =~ s/^(\w+):// or badcfg "invalid archive-query method \`$query'";
my $proto = $1;
my $data = $'; #';
my $query = access_cfg('archive-query','RETURN-UNDEF');
$query =~ s/^(\w+):// or badcfg "invalid archive-query method \`$query'";
my $proto = $1;
my $data = $'; #';
- { no strict qw(refs); &{"${method}_${proto}"}($proto,$data); }
+ { no strict qw(refs); &{"${method}_${proto}"}($proto,$data
,@_
); }
}
sub pool_dsc_subpath ($$) {
}
sub pool_dsc_subpath ($$) {
@@
-1009,9
+1009,9
@@
sub archive_api_query_cmd ($) {
return @cmd;
}
return @cmd;
}
-sub api_query ($$) {
+sub api_query ($$
;$
) {
use JSON;
use JSON;
- my ($data, $subpath) = @_;
+ my ($data, $subpath
, $ok404
) = @_;
badcfg "ftpmasterapi archive query method takes no data part"
if length $data;
my @cmd = archive_api_query_cmd($subpath);
badcfg "ftpmasterapi archive query method takes no data part"
if length $data;
my @cmd = archive_api_query_cmd($subpath);
@@
-1023,6
+1023,7
@@
sub api_query ($$) {
fail "curl failed to print 3-digit HTTP code";
}
my $code = $&;
fail "curl failed to print 3-digit HTTP code";
}
my $code = $&;
+ return undef if $code eq '404' && $ok404;
fail "fetch of $url gave HTTP code $code"
unless $url =~ m#^file://# or $code =~ m/^2/;
return decode_json($json);
fail "fetch of $url gave HTTP code $code"
unless $url =~ m#^file://# or $code =~ m/^2/;
return decode_json($json);