use crate::cli::parser::ShexCheckArgs;
use crate::commands::base::{Command, CommandContext};
use anyhow::Result;
pub struct ShexCheckCommand {
args: ShexCheckArgs,
}
impl ShexCheckCommand {
pub fn new(args: ShexCheckArgs) -> Self {
Self { args }
}
}
impl Command for ShexCheckCommand {
fn name(&self) -> &'static str {
"shex-check"
}
fn execute(&self, ctx: &mut CommandContext) -> Result<()> {
let format = self.args.schema_format.into();
let mut check_shex_schema = ctx.rudof.check_shex_schema(&self.args.schema, &mut ctx.writer);
check_shex_schema = check_shex_schema.with_shex_schema_format(&format);
if let Some(base) = &self.args.base {
check_shex_schema = check_shex_schema.with_base(base);
}
check_shex_schema.execute()?;
Ok(())
}
}