ai-commit-cli 0.4.0

A CLI that writes your git commit messages for you with AI
use std::io::IsTerminal;
use std::process::{Command, Stdio};

use anyhow::Result;

use crate::common::log::LogError;

pub fn run() -> Result<()> {
    let mut cmd = Command::new("pre-commit");
    cmd.arg("run");
    if std::io::stdout().is_terminal() {
        cmd.arg("--color=always");
    }
    cmd.stdin(Stdio::null())
        .stdout(Stdio::inherit())
        .stderr(Stdio::inherit());
    tracing::debug!("{:?}", cmd);
    let status = match cmd.status() {
        Ok(status) => status,
        Err(e) => {
            if e.kind() == std::io::ErrorKind::NotFound {
                return Ok(());
            } else {
                return Err(e.log());
            }
        }
    };
    crate::ensure!(status.success());
    Ok(())
}