#!/usr/bin/env perl
my
%files
= (
);
foreach
my
$target
(
keys
%files
) {
my
$source
=
$files
{
$target
};
$target
= path(
'share'
,
$target
);
$target
->parent->mkpath;
my
$response
= HTTP::Tiny->new->get(
$source
);
die
"Failed to fetch $source: $response->{status} $response->{reason}"
if
not
$response
->{success};
$target
->spew(
$response
->{content});
}
my
$yaml
= YAML::PP->new(
boolean
=>
'JSON::PP'
);
my
$js
= JSON::Schema::Modern->new(
validate_formats
=> 1);
$js
->add_schema(
$files
{
$_
} =>
$yaml
->load_file(
'share/'
.
$_
))
foreach
keys
%files
;
foreach
my
$uri
(
values
%files
) {
print
"# validating $uri\n"
if
$ENV
{DEBUG};
my
$document
=
$js
->_fetch_from_uri(
$uri
)->{document};
my
$result
=
$js
->evaluate(
$document
->schema,
$document
->metaschema_uri);
die
$js
->_json_decoder->pretty->encode(
$result
)
if
not
$result
;
}