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(&target)?;
28 for line in &report.lines {
29 output::line(line);
30 }
31 if report.failures > 0 {
32 return Err(AppError::Violations {
33 count: report.failures,
34 });
35 }
36 Ok(())
37}