diff --git a/src/main.rs b/src/main.rs index 6289c19..718a680 100644 --- a/src/main.rs +++ b/src/main.rs @@ -159,7 +159,8 @@ fn real_main() -> Result> { // Time for mommy to call cargo~ let mut cmd = std::process::Command::new(&cargo); - cmd.args(args) + + cmd.args(args.clone()) .env(RECURSION_LIMIT_VAR, new_limit.to_string()); let status: std::process::ExitStatus = cmd.status().map_err(|err: std::io::Error| { format!("{true_role} tried looking everywhere, but did not find `{cargo}`: {err}",) @@ -169,6 +170,21 @@ fn real_main() -> Result> { return Ok(code); } + // Mommy can tell you how old she is :D + if args.contains(&"-V".to_string()) || args.contains(&"--version".to_string()) { + print!("{} {}", env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION")); + if let Some(c) = option_env!("CARGO_COMMIT_SHORT_HASH") { + print!(" ({}", c); + + match option_env!("CARGO_COMMIT_DATE") { + Some(c) => print!(" {})", c), + None => print!(")"), + } + } + + println!(); + } + // Time for mommy to tell you how you did~ let response = if status.success() { select_response(&true_role, &rng, ResponseType::Positive)