repoverse 0.1.7

Multi-repo workspace tool: keep many git repos in sync and roll changes up across dependency boundaries
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//! Optional `gh` wrapper, capability-detected. Absence degrades gracefully.

use std::process::Command;
use std::sync::OnceLock;

static AVAILABLE: OnceLock<bool> = OnceLock::new();

pub fn available() -> bool {
    *AVAILABLE.get_or_init(|| {
        Command::new("gh")
            .arg("--version")
            .output()
            .map(|o| o.status.success())
            .unwrap_or(false)
    })
}