From 417f1a9813e28af026be68bf84eed6f7138a659b Mon Sep 17 00:00:00 2001 From: Ed Page Date: Fri, 16 Sep 2022 14:29:26 -0500 Subject: [PATCH] fix(derive): Read CARGO_PKG_NAME at runtime This was broken in #4168 --- clap_derive/src/derives/parser.rs | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/clap_derive/src/derives/parser.rs b/clap_derive/src/derives/parser.rs index 5518fde7ff7..617857cacaa 100644 --- a/clap_derive/src/derives/parser.rs +++ b/clap_derive/src/derives/parser.rs @@ -29,6 +29,7 @@ use crate::item::Name; pub fn derive_parser(input: &DeriveInput) -> TokenStream { let ident = &input.ident; + let pkg_name = std::env::var("CARGO_PKG_NAME").ok().unwrap_or_default(); match input.data { Data::Struct(DataStruct { @@ -37,9 +38,7 @@ pub fn derive_parser(input: &DeriveInput) -> TokenStream { }) => { dummies::parser_struct(ident); - let name = Name::Assigned(quote!(std::env::var("CARGO_PKG_NAME") - .ok() - .unwrap_or_default())); + let name = Name::Assigned(quote!(#pkg_name)); let item = Item::from_args_struct(input, name); let fields = fields .named @@ -57,9 +56,7 @@ pub fn derive_parser(input: &DeriveInput) -> TokenStream { }) => { dummies::parser_struct(ident); - let name = Name::Assigned(quote!(std::env::var("CARGO_PKG_NAME") - .ok() - .unwrap_or_default())); + let name = Name::Assigned(quote!(#pkg_name)); let item = Item::from_args_struct(input, name); let fields = Punctuated::::new(); let fields = fields @@ -74,9 +71,7 @@ pub fn derive_parser(input: &DeriveInput) -> TokenStream { Data::Enum(ref e) => { dummies::parser_enum(ident); - let name = Name::Assigned(quote!(std::env::var("CARGO_PKG_NAME") - .ok() - .unwrap_or_default())); + let name = Name::Assigned(quote!(#pkg_name)); let item = Item::from_subcommand_enum(input, name); let variants = e .variants