Skip to content

Instantly share code, notes, and snippets.

@chadaustin
Created November 19, 2019 01:24
Embed
What would you like to do?
#!/usr/bin/env run-cargo-script
//! ```cargo
//! [dependencies]
//! ```
use std::process::Command;
fn main() -> std::io::Result<()> {
let mut path = std::env::current_dir()?;
loop {
let mut hg = path.clone();
hg.push(".hg");
if hg.is_dir() {
std::process::exit(Command::new("hg").arg("status").spawn()?.wait()?.code().unwrap());
}
let mut git = path.clone();
git.push(".git");
if git.is_dir() {
std::process::exit(Command::new("git").arg("status").spawn()?.wait()?.code().unwrap());
}
if !path.pop() {
eprintln!("not inside a checkout");
std::process::exit(1);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment