diff --git a/src/args.rs b/src/args.rs index 50382a9..72b4d70 100644 --- a/src/args.rs +++ b/src/args.rs @@ -6,11 +6,15 @@ use std::{env, mem}; pub(crate) fn parse_args() -> Result { let mut args = env::args(); - let executable_name = args.next().ok_or("no first argument (executable name)")?; + let is_cargo_bootimage = { + let executable_name = args.next().ok_or("no first argument (executable name)")?; + let file_stem = Path::new(&executable_name).file_stem().and_then(|s| s.to_str()); + file_stem == Some("cargo-bootimage") + }; let first = args.next(); match first.as_ref().map(|s| s.as_str()) { Some("build") => parse_build_args(args), - Some("bootimage") if executable_name.ends_with("cargo-bootimage") => parse_build_args(args) + Some("bootimage") if is_cargo_bootimage => parse_build_args(args) .map(|cmd| match cmd { Command::BuildHelp => Command::CargoBootimageHelp, cmd => cmd,