Files
shed/src/builtin/alias.rs

20 lines
637 B
Rust

use crate::prelude::*;
pub fn alias(node: Node, shenv: &mut ShEnv) -> ShResult<()> {
let rule = node.into_rule();
if let NdRule::Command { argv, redirs: _ } = rule {
let argv = argv.drop_first();
let mut argv_iter = argv.into_iter();
while let Some(arg) = argv_iter.next() {
let arg_raw = arg.to_string();
if let Some((alias,body)) = arg_raw.split_once('=') {
let clean_body = trim_quotes(&body);
shenv.logic_mut().set_alias(alias, &clean_body);
} else {
return Err(ShErr::full(ShErrKind::SyntaxErr, "Expected an assignment in alias args", arg.span().clone()))
}
}
} else { unreachable!() }
Ok(())
}