summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsigoden <sigoden@gmail.com>2025-07-28 23:12:16 +0800
committerGitHub <noreply@github.com>2025-07-28 23:12:16 +0800
commit1ce2b6e1f91b307a84e69c6c7f0bf3adf317c1d2 (patch)
treecb8b9cd2a3e79e8f448321233284dc366fbc98cf
parent0ac61adf7bd73272326c35840b1e29523f65f1f4 (diff)
downloadaichat-1ce2b6e1f91b307a84e69c6c7f0bf3adf317c1d2.tar.gz
feat: env vars take precedence over client config (#1361)
-rw-r--r--src/client/macros.rs14
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)))
}
};