diff --git a/rslib/process/src/lib.rs b/rslib/process/src/lib.rs index c0e907ae8..aebcf9fb3 100644 --- a/rslib/process/src/lib.rs +++ b/rslib/process/src/lib.rs @@ -34,12 +34,10 @@ pub struct Utf8Output { } pub trait CommandExt { - fn run(cmd_and_args: I) -> Result<()> - where - I: IntoIterator, - S: AsRef, - { - let mut all_args = cmd_and_args.into_iter(); + /// A shortcut for when the command and its args are known up-front and have + /// no spaces in them. + fn run(cmd_and_args: impl AsRef) -> Result<()> { + let mut all_args = cmd_and_args.as_ref().split(' '); Command::new(all_args.next().unwrap()) .args(all_args) .ensure_success()?; @@ -111,9 +109,7 @@ mod test { #[test] fn test_run() { assert_eq!( - Command::run(["fakefake", "1", "2"]) - .unwrap_err() - .to_string(), + Command::run("fakefake 1 2").unwrap_err().to_string(), "Failed to execute: fakefake 1 2" ); #[cfg(not(windows))] diff --git a/tools/minilints/src/main.rs b/tools/minilints/src/main.rs index edbff45a8..b64d61b5a 100644 --- a/tools/minilints/src/main.rs +++ b/tools/minilints/src/main.rs @@ -198,14 +198,14 @@ impl LintContext { } fn check_cargo_deny() -> Result<()> { - Command::run(["cargo", "install", "cargo-deny@0.13.5"])?; - Command::run(["cargo", "deny", "check", "-A", "duplicate"])?; + Command::run("cargo install cargo-deny@0.13.5")?; + Command::run("cargo deny check -A duplicate")?; Ok(()) } fn update_hakari() -> Result<()> { - Command::run(["cargo", "install", "cargo-hakari@0.9.23"])?; - Command::run(["cargo", "hakari", "generate"])?; + Command::run("cargo install cargo-hakari@0.9.23")?; + Command::run("cargo hakari generate")?; Ok(()) } @@ -258,7 +258,7 @@ fn check_for_unstaged_changes() { fn generate_licences() -> Result { if which::which("cargo-license").is_err() { - Command::run(["cargo", "install", "cargo-license@0.5.1"])?; + Command::run("cargo install cargo-license@0.5.1")?; } let output = Command::run_with_output([ "cargo-license",