diff options
Diffstat (limited to 'src/run/mod.rs')
| -rw-r--r-- | src/run/mod.rs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/run/mod.rs b/src/run/mod.rs index c866c6e..a31ff1a 100644 --- a/src/run/mod.rs +++ b/src/run/mod.rs @@ -477,6 +477,21 @@ fn exec(se: Arc<Mutex<Session>>, ast: Ast<PreExpansion>) -> Result<(), ExecError exec.exec_loop(cmd, &mut [c1, c2]) } +pub fn run_quiet( + se: Arc<Mutex<Session>>, + cmd: parse::Command<PostExpansion>, +) -> Result<(), ExecError> { + let mut exec = Executor { + se: se.clone(), + args: None, + expand_commands: true, + }; + let (i, c1) = InputReader::new(Input::Null); + let (o, c2) = OutputWriter::new(Output::Null); + let cmd = exec.execute_pipeline(parse::Pipes { cmds: vec![cmd] }, i, o); + exec.exec_loop(cmd, &mut [c1, c2]) +} + pub fn run(se: Arc<Mutex<Session>>, parsed: Ast<PreExpansion>) { se.lock().unwrap().raw.disable(); let result = exec(se.clone(), parsed); @@ -550,6 +565,9 @@ const BUILTINS: &[&'static dyn Builtin] = &[ #[cfg(debug_assertions)] &builtin::debug, &builtin::terminfo, + &builtin::bind, + &builtin::exit, + &builtin::ct, ]; pub fn builtin_map() -> HashMap<BString, &'static dyn Builtin> { |
