use processkit::{ProcessRunner, Result, cli_client};
cli_client!(
pub struct Git => "git"
);
impl<R: ProcessRunner> Git<R> {
pub async fn current_branch(&self) -> Result<String> {
self.core
.run(self.core.command(["branch", "--show-current"]))
.await
}
pub async fn is_clean(&self) -> Result<bool> {
self.core
.probe(self.core.command(["diff", "--quiet"]))
.await
}
}
#[tokio::main]
async fn main() -> Result<()> {
let git = Git::new(); println!("on branch: {}", git.current_branch().await?);
println!("working tree clean: {}", git.is_clean().await?);
Ok(())
}