Substitute `{env:VAR}` patterns with environment variable values. Works on the raw JSONC text before parsing.
(text: &str)
| 395 | /// Substitute `{env:VAR}` patterns with environment variable values. |
| 396 | /// Works on the raw JSONC text before parsing. |
| 397 | fn substitute_env_vars(text: &str) -> String { |
| 398 | let re = regex::Regex::new(r"\{env:([^}]+)\}").unwrap(); |
| 399 | re.replace_all(text, |caps: ®ex::Captures| { |
| 400 | let var_name = &caps[1]; |
| 401 | std::env::var(var_name).unwrap_or_default() |
| 402 | }) |
| 403 | .to_string() |
| 404 | } |
| 405 | |
| 406 | /// Resolve `{file:path}` patterns by reading file contents. |
| 407 | /// Skips patterns on commented lines. Resolves relative paths from `base_dir`. |