From ed55d5b4892d764d027b192360a591befe969588 Mon Sep 17 00:00:00 2001 From: Stephen D Date: Tue, 14 Jan 2025 20:35:12 -0500 Subject: [PATCH] it works --- .gitignore | 1 + Cargo.lock | 16 ++++++++++++++++ Cargo.toml | 7 +++++++ src/main.rs | 32 ++++++++++++++++++++++++++++++++ 4 files changed, 56 insertions(+) create mode 100644 .gitignore create mode 100644 Cargo.lock create mode 100644 Cargo.toml create mode 100644 src/main.rs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/target diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..441218a --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,16 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "anyhow" +version = "1.0.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04" + +[[package]] +name = "cargo-gg" +version = "0.1.0" +dependencies = [ + "anyhow", +] diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..8edfc8d --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,7 @@ +[package] +name = "cargo-gg" +version = "0.1.0" +edition = "2021" + +[dependencies] +anyhow = "1.0.95" diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..4d8233d --- /dev/null +++ b/src/main.rs @@ -0,0 +1,32 @@ +use std::{env, fs::File, process::Command}; + +fn main() -> anyhow::Result<()> { + let mut arg_iter = env::args().peekable(); + arg_iter.next(); + + if arg_iter.peek().map_or(false, |arg| arg == "gg") { + let _ = arg_iter.next(); + } + + let args: Vec<_> = arg_iter.collect(); + + let mut cmd = Command::new("cargo"); + cmd.args(args); + + let status = cmd.status()?; + let code = status.code().unwrap_or(1); + + let path = env::temp_dir().join(".gg-failed"); + + if code == 0 { + if std::fs::exists(&path)? { + println!("Good girl!"); + + let _ = std::fs::remove_file(path); + } + } else { + let _ = File::create(env::temp_dir().join(".gg-failed")); + } + + Ok(()) +}