|
@ -9,14 +9,12 @@ const ENV_SET: Lazy<Regex> = Lazy::new(|| Regex::new(r#"(?P<key>\w+)=(?P<value>\ |
|
|
/// returns `Ok(None)`, do not execute a command.
|
|
|
/// returns `Ok(None)`, do not execute a command.
|
|
|
pub fn preprocess(line: String) -> Result<Option<String>, ShellError> {
|
|
|
pub fn preprocess(line: String) -> Result<Option<String>, ShellError> {
|
|
|
if let Some(capture) = ENV_SET.captures(&line) {
|
|
|
if let Some(capture) = ENV_SET.captures(&line) {
|
|
|
let Some(key) = capture.name("key") else {
|
|
|
|
|
|
return Err(ShellError::MalformedArgs("cannot find key to set env variable".to_string()))
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
let key = capture.name("key").unwrap().as_str();
|
|
|
let value = capture
|
|
|
let value = capture
|
|
|
.name("value")
|
|
|
.name("value")
|
|
|
.map_or("".to_string(), |v| v.as_str().to_string());
|
|
|
.map_or("".to_string(), |v| v.as_str().to_string());
|
|
|
|
|
|
|
|
|
env::set_var(key.as_str(), value);
|
|
|
|
|
|
|
|
|
env::set_var(key, value);
|
|
|
return Ok(None);
|
|
|
return Ok(None);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|