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