From 2edf26bbeb68974c7a1130e0376acf44bbeefc05 Mon Sep 17 00:00:00 2001 From: Nilstrieb <48135649+Nilstrieb@users.noreply.github.com> Date: Sat, 24 Feb 2024 10:36:28 +0100 Subject: [PATCH] Make mommy say what she tried to spawn~ When the user tells mommy to spawn things that don't exist (using CARGO_MOMMYS_ACTUAL), mommy is not very supportive and doesn't help them debug it. --- src/main.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main.rs b/src/main.rs index f20743e..6289c19 100644 --- a/src/main.rs +++ b/src/main.rs @@ -118,7 +118,7 @@ fn real_main() -> Result> { // "mommy" let "cargo mommy i mean mommy i mean mommy" work right~ let new_role = args.get(2); let mean = args.get(1) == Some(&"mean".to_owned()); - let i = args.get(0) == Some(&"i".to_owned()); + let i = args.first() == Some(&"i".to_owned()); if i && mean { if let Some(new_role) = new_role.cloned() { // Ok at this point we're confident we got "i mean " @@ -158,10 +158,12 @@ fn real_main() -> Result> { } // Time for mommy to call cargo~ - let mut cmd = std::process::Command::new(cargo); + let mut cmd = std::process::Command::new(&cargo); cmd.args(args) .env(RECURSION_LIMIT_VAR, new_limit.to_string()); - let status = cmd.status()?; + 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}",) + })?; let code = status.code().unwrap_or(1); if is_quiet_mode_enabled(cmd.get_args()) { return Ok(code);