use anyhow::Result;
use clap::Parser;
mod cli;
mod detector;
mod languages;
mod patterns;
mod reporter;
mod scanner;
use cli::Args;
use detector::LanguageDetector;
use reporter::Reporter;
use scanner::Scanner;
fn main() -> Result<()> {
let args = Args::parse();
let scanner = Scanner::new().with_include_hidden(args.include_hidden);
let detector = LanguageDetector::new()?;
let reporter = Reporter::new();
let files = scanner.scan_directory(&args.path, args.max_depth)?;
let analysis = detector.analyze_files(&files)?;
reporter.generate_report(&analysis, args.format)?;
Ok(())
}