From 56d9c9a8b514998f999adbf13f745c81fc06ce66 Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Tue, 24 Jun 2025 21:36:38 +0000 Subject: [PATCH] Handle empty std::env::args() for FreeBSD. (fixes #75) Signed-off-by: Jason Volk --- src/macros/rustc.rs | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/macros/rustc.rs b/src/macros/rustc.rs index 290039b1..55fd3fec 100644 --- a/src/macros/rustc.rs +++ b/src/macros/rustc.rs @@ -35,21 +35,20 @@ pub(super) fn version(args: TokenStream) -> TokenStream { return args; }; - let rustc_path = std::env::args() - .next() - .expect("Path to rustc executable"); - - let version = Command::new(rustc_path) - .args(["-V"]) - .output() - .map(|output| { + let rustc_path = std::env::args().next(); + let version = rustc_path + .and_then(|rustc_path| { + Command::new(rustc_path) + .args(["-V"]) + .output() + .ok() + }) + .and_then(|output| { str::from_utf8(&output.stdout) .map(str::trim) .map(String::from) .ok() }) - .ok() - .flatten() .unwrap_or_default(); let ret = quote! {