zola_chrono 0.4.0

Tool to set dates for zola pages based on git history
Documentation
use anyhow::bail;
use clap::Parser;
use tracing::{debug, error};
use tracing_subscriber::{fmt, layer::SubscriberExt as _, util::SubscriberInitExt as _, EnvFilter};
use zola_chrono::{self, run, Cli};

fn main() -> anyhow::Result<()> {
    let cli: Cli = Cli::parse();
    init_tracing();
    debug!("Cli: {cli:#?}");
    let stats = run(&cli)?;
    println!("File Stats: {stats}");
    if stats.errors() == 0 {
        if cli.should_check_only && stats.changed() > 0 {
            println!("{} files would have been changed", stats.changed());
            std::process::exit(2);
        }
        Ok(())
    } else {
        let msg = format!("Run FAILED! {} errors", stats.errors());
        error!("{msg}");
        bail!("{msg}");
    }
}

fn init_tracing() {
    tracing_subscriber::registry()
        .with(fmt::layer())
        .with(EnvFilter::try_from_default_env().unwrap_or_else(|_| EnvFilter::new("info")))
        .init();
}