diff options
| author | Jonas Maier <jonas@x77.dev> | 2026-03-09 20:49:53 +0100 |
|---|---|---|
| committer | Jonas Maier <jonas@x77.dev> | 2026-03-09 20:49:53 +0100 |
| commit | 5d8d9f07669cdc8ac17c866edb6a8c07bbe4221c (patch) | |
| tree | f37429eadff223b4381361b7994b6a9840f00f4e /src/run | |
| parent | 93e5286946b5ed3e6c27a4ef6f1b457a1f6bebc7 (diff) | |
| download | pish-5d8d9f07669cdc8ac17c866edb6a8c07bbe4221c.tar.gz | |
variable default value
Diffstat (limited to 'src/run')
| -rw-r--r-- | src/run/mod.rs | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/run/mod.rs b/src/run/mod.rs index c7414a8..e041066 100644 --- a/src/run/mod.rs +++ b/src/run/mod.rs @@ -305,7 +305,11 @@ impl Executor { impl parse::Expander for Executor { type Error = ExecError; - fn expand_var(&mut self, var: BString) -> Result<BString, Self::Error> { + fn expand_var( + &mut self, + var: BString, + default: Option<BString>, + ) -> Result<BString, Self::Error> { if var.is_empty() { return Err(ExecError::UnknownVariable(var)); } @@ -331,7 +335,10 @@ impl parse::Expander for Executor { match std::env::var_os(OsStr::from_bytes(&var)) { Some(val) => Ok(val.as_bytes().to_vec()), - None => Err(ExecError::UnknownVariable(var)), + None => match default { + Some(d) => Ok(d), + None => Err(ExecError::UnknownVariable(var)), + }, } } |
