+ my $cmd = $_;
+ my $ref = "$filename line $.";
+
+ # store curl downloads
+ s{\bcurl (\S*)(?<param>[^|]*)}{
+ my $url = $1;
+ my @params = split ' ', $+{param};
+ my $ext = (
+ $cmd =~ /\bxml/ ? 'xml' :
+ $cmd =~ / jq / ? 'json' :
+ $cmd =~ /[=.]csv\b/ ? 'csv' :
+ 'txt'
+ );
+ my ($domain, $path) = $url =~ m{//([^/]+) .*/ ([^/]*) \z}x;
+ $path =~ s/\.$ext\z//;
+ my $cache = join '.', $path =~ tr/./_/r, $domain, $ext;
+ $cache = "sample/data/$cache";
+ SKIP: {
+ -e $cache and skip($url, 1);
+ ok(defined runres(['curl', '-sS', $url, '-o', $cache, @params]), $url)
+ or diag("download at $ref: $@");
+ }
+ "cat $cache"
+ }e;