crabcode 0.0.1

(WIP) Rust AI CLI Coding Agent with a beautiful terminal UI
use std::process::Command;

pub fn get_current_branch() -> Option<String> {
    let output = Command::new("git")
        .args(["rev-parse", "--abbrev-ref", "HEAD"])
        .output()
        .ok()?;

    if output.status.success() {
        let branch = String::from_utf8(output.stdout).ok()?;
        let branch = branch.trim();
        if branch.is_empty() || branch == "HEAD" {
            None
        } else {
            Some(branch.to_string())
        }
    } else {
        None
    }
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn test_get_current_branch() {
        let branch = get_current_branch();
        if let Some(branch_name) = branch {
            assert!(!branch_name.is_empty());
            assert_ne!(branch_name, "HEAD");
        }
    }
}