From 1ce2b6e1f91b307a84e69c6c7f0bf3adf317c1d2 Mon Sep 17 00:00:00 2001 From: sigoden Date: Mon, 28 Jul 2025 23:12:16 +0800 Subject: feat: env vars take precedence over client config (#1361) --- src/client/macros.rs | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/client/macros.rs b/src/client/macros.rs index 6f03d59..a3730bd 100644 --- a/src/client/macros.rs +++ b/src/client/macros.rs @@ -226,14 +226,12 @@ macro_rules! impl_client_trait { macro_rules! config_get_fn { ($field_name:ident, $fn_name:ident) => { fn $fn_name(&self) -> anyhow::Result { - let api_key = self.config.$field_name.clone(); - api_key - .or_else(|| { - let env_prefix = Self::name(&self.config); - let env_name = - format!("{}_{}", env_prefix, stringify!($field_name)).to_ascii_uppercase(); - std::env::var(&env_name).ok() - }) + let env_prefix = Self::name(&self.config); + let env_name = + format!("{}_{}", env_prefix, stringify!($field_name)).to_ascii_uppercase(); + std::env::var(&env_name) + .ok() + .or_else(|| self.config.$field_name.clone()) .ok_or_else(|| anyhow::anyhow!("Miss '{}'", stringify!($field_name))) } }; -- cgit v1.2.3