use crate::cli::LintConfigArgs;
use crate::commands::{ignores, lint};
use crate::domain::config::validate;
use crate::errors::Result;
use crate::io::{configfs, files};
pub fn run(args: LintConfigArgs) -> Result<i32> {
let cwd = lint::resolve_cwd(&args.cwd)?;
let loaded = configfs::load_config_lint(&cwd)?;
validate(&loaded.config)?;
let cli_files = files::from_cli(&cwd, &args.files);
let targets = ignores::target_files(&cwd, &loaded.config, &loaded.scopes, &cli_files)?;
let known = ignores::known_rules(&loaded.config);
ignores::check(&cwd, &targets, &known)?;
lint::run_loaded(loaded, cwd, args.into_lint_args())
}