diff options
| author | sigoden <sigoden@gmail.com> | 2025-07-28 23:12:16 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-07-28 23:12:16 +0800 |
| commit | 1ce2b6e1f91b307a84e69c6c7f0bf3adf317c1d2 (patch) | |
| tree | cb8b9cd2a3e79e8f448321233284dc366fbc98cf | |
| parent | 0ac61adf7bd73272326c35840b1e29523f65f1f4 (diff) | |
| download | aichat-1ce2b6e1f91b307a84e69c6c7f0bf3adf317c1d2.tar.gz | |
feat: env vars take precedence over client config (#1361)
| -rw-r--r-- | src/client/macros.rs | 14 |
1 files 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<String> { - 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))) } }; |
