40 lines
709 B
Perl
40 lines
709 B
Perl
|
package App::Changelord::Command::Validate;
|
||
|
|
||
|
use 5.36.0;
|
||
|
|
||
|
use Moo;
|
||
|
use CLI::Osprey;
|
||
|
|
||
|
use Path::Tiny;
|
||
|
use JSON;
|
||
|
use YAML::XS;
|
||
|
use JSON::Schema::Modern;
|
||
|
|
||
|
option json => (
|
||
|
is => 'ro',
|
||
|
default => 0,
|
||
|
doc => 'output schema as json',
|
||
|
);
|
||
|
|
||
|
sub run($self) {
|
||
|
local $YAML::XS::Boolean = 'boolean';
|
||
|
|
||
|
my $schema = path(__FILE__)->sibling('changelog-schema.yml')->slurp;
|
||
|
|
||
|
my $result = JSON::Schema::Modern->new(
|
||
|
output_format => 'detailed',
|
||
|
)->evaluate(
|
||
|
$self->parent_command->changelog,
|
||
|
YAML::XS::Load($schema),
|
||
|
);
|
||
|
|
||
|
return say "woo, changelog is valid!" if( $result eq 'valid' );
|
||
|
|
||
|
|
||
|
print $result;
|
||
|
die "\n";
|
||
|
|
||
|
}
|
||
|
|
||
|
'end of App::Changelog::Command::Validate';
|