use crate::cli::ValidateArgs;
use crate::commands::{ignores, lint, version_bump};
use crate::domain::config::validate;
use crate::errors::Result;
use crate::io::configfs;
pub fn run(args: ValidateArgs) -> Result<i32> {
let cwd = lint::resolve_cwd(&args.cwd)?;
let loaded = configfs::load(&args.config, &cwd)?;
validate(&loaded.config)?;
let targets = ignores::target_files(&cwd, &loaded.config, &loaded.scopes, &[])?;
let known = ignores::known_rules(&loaded.config);
ignores::check(&cwd, &targets, &known)?;
let backend = args.diff.unwrap_or_default();
let versioned = version_bump::check(&cwd, &[], backend, args.diff_base.clone())?;
println!(
"llmlint: static checks passed ({} file(s) scanned for ignores, \
{versioned} versioned config(s) checked)",
targets.len()
);
Ok(0)
}