mirror of
https://github.com/euzu/tuliprox.git
synced 2026-10-30 10:42:29 +01:00
fixed env resolution
This commit is contained in:
@@ -142,13 +142,8 @@ pub fn save_main_config(file_path: &str, backup_dir: &str, config: &ConfigDto) -
|
||||
static ENV_REGEX: LazyLock<regex::Regex> = LazyLock::new(|| Regex::new(r"\$\{env:(?P<var>[a-zA-Z_][a-zA-Z0-9_]*)}").unwrap());
|
||||
|
||||
pub fn resolve_env_var(value: &str) -> String {
|
||||
if !value.trim().is_empty() {
|
||||
if let Some(caps) = ENV_REGEX.captures(value) {
|
||||
if let Some(var) = caps.name("var") {
|
||||
let var_name = var.as_str();
|
||||
return env::var(var_name).unwrap_or_else(|_| value.to_string());
|
||||
}
|
||||
}
|
||||
}
|
||||
value.to_string()
|
||||
ENV_REGEX.replace_all(value, |caps: ®ex::Captures| {
|
||||
let var_name = &caps["var"];
|
||||
env::var(var_name).unwrap_or_else(|_| format!("${{env:{var_name}}}"))
|
||||
}).to_string()
|
||||
}
|
||||
+6
-12
@@ -4,7 +4,7 @@ use std::io::Write;
|
||||
use std::path::{Path, PathBuf};
|
||||
|
||||
use log::{debug, error};
|
||||
use path_absolutize::Absolutize;
|
||||
use path_clean::PathClean;
|
||||
|
||||
const USER_FILE: &str = "user.txt";
|
||||
const CONFIG_PATH: &str = "config";
|
||||
@@ -132,17 +132,11 @@ pub fn prepare_persist_path(file_name: &str, date_prefix: &str) -> PathBuf {
|
||||
|
||||
pub fn get_file_path(wd: &str, path: Option<PathBuf>) -> Option<PathBuf> {
|
||||
path.map(|p| if p.is_relative() {
|
||||
let pb = PathBuf::from(wd);
|
||||
match pb.join(&p).absolutize() {
|
||||
Ok(os) => PathBuf::from(os),
|
||||
Err(e) => {
|
||||
error!("path is not relative {:?}", e);
|
||||
p
|
||||
}
|
||||
}
|
||||
} else {
|
||||
p
|
||||
})
|
||||
let pb = PathBuf::from(wd);
|
||||
pb.join(&p).clean()
|
||||
} else {
|
||||
p
|
||||
})
|
||||
}
|
||||
|
||||
pub fn add_prefix_to_filename(path: &Path, prefix: &str, ext: Option<&str>) -> PathBuf {
|
||||
|
||||
Reference in New Issue
Block a user