use std::path::Path;
use anyhow::{Context, Result};
use sdivi_config::Config;
use sdivi_core::compute_trend;
use sdivi_pipeline::store::read_snapshots;
use crate::output;
pub fn run(repo_root: &Path, config: &Config, last_n: Option<usize>, format: &str) -> Result<()> {
let snapshot_dir = repo_root.join(&config.snapshots.dir);
let snapshots = read_snapshots(&snapshot_dir)
.with_context(|| format!("failed to read snapshot dir: {}", snapshot_dir.display()))?;
if snapshots.len() < 2 {
eprintln!("sdivi trend: not enough snapshots (need \u{2265}2)");
return Ok(());
}
let result = compute_trend(&snapshots, last_n);
match format {
"json" => output::json::print_trend(&result)?,
_ => output::text::print_trend(&result),
}
Ok(())
}