add command validate

This commit is contained in:
Yanick Champoux 2022-07-13 14:03:40 -04:00
parent b63f061617
commit 1d32409f56
2 changed files with 40 additions and 0 deletions

View File

@ -59,5 +59,6 @@ sub run($self) {
} }
subcommand 'schema' => 'App::Changelord::Command::Schema'; subcommand 'schema' => 'App::Changelord::Command::Schema';
subcommand 'validate' => 'App::Changelord::Command::Validate';
'end of App::Changeman'; 'end of App::Changeman';

View File

@ -0,0 +1,39 @@
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';