diff options
| author | sigoden <sigoden@gmail.com> | 2024-06-27 12:30:09 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-06-27 12:30:09 +0800 |
| commit | f82524fd154a1bf4a7277db868147afdb0cd507a (patch) | |
| tree | 2fd588377d63b47b4ae1a051a0e363a9737f3f8f /src/utils | |
| parent | 33a0049a81103c1f6c5639b9cec43cb14a9ef367 (diff) | |
| download | aichat-f82524fd154a1bf4a7277db868147afdb0cd507a.tar.gz | |
feat: implement native rag url loader (#660)
Diffstat (limited to 'src/utils')
| -rw-r--r-- | src/utils/mod.rs | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/utils/mod.rs b/src/utils/mod.rs index 7d1d07a..76ab208 100644 --- a/src/utils/mod.rs +++ b/src/utils/mod.rs @@ -14,6 +14,7 @@ pub use self::prompt_input::*; pub use self::render_prompt::render_prompt; pub use self::spinner::{create_spinner, Spinner}; +use anyhow::{Context, Result}; use fancy_regex::Regex; use is_terminal::IsTerminal; use lazy_static::lazy_static; @@ -180,6 +181,28 @@ pub fn safe_join_path<T1: AsRef<Path>, T2: AsRef<Path>>( } } +pub fn set_proxy( + builder: reqwest::ClientBuilder, + proxy: Option<&String>, +) -> Result<reqwest::ClientBuilder> { + let proxy = if let Some(proxy) = proxy { + if proxy.is_empty() || proxy == "-" { + return Ok(builder); + } + proxy.clone() + } else if let Some(proxy) = ["HTTPS_PROXY", "https_proxy", "ALL_PROXY", "all_proxy"] + .into_iter() + .find_map(|v| env::var(v).ok()) + { + proxy + } else { + return Ok(builder); + }; + let builder = builder + .proxy(reqwest::Proxy::all(&proxy).with_context(|| format!("Invalid proxy `{proxy}`"))?); + Ok(builder) +} + #[cfg(test)] mod tests { use super::*; |
