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';
|