spec_driven_docs/commands/
verify.rs1use crate::cli::verify::VerifyArgs;
8use crate::context::AppContext;
9use crate::error::AppError;
10use crate::output;
11use crate::services::verifier::verify;
12
13pub fn run(ctx: &AppContext, args: VerifyArgs) -> Result<(), AppError> {
20 let target = if args.target.is_absolute() {
21 args.target
22 } else if args.target == "." {
23 ctx.cwd.clone()
24 } else {
25 return Err(AppError::Usage("target must be absolute or .".to_string()));
26 };
27 let report = verify(
28 &target,
29 &crate::release::embedded::EmbeddedReleaseBundle::new(),
30 )?;
31 for line in &report.lines {
32 output::line(line);
33 }
34 if report.failures > 0 {
35 return Err(AppError::Violations {
36 count: report.failures,
37 });
38 }
39 Ok(())
40}