aboutsummaryrefslogtreecommitdiffstats
path: root/src/run/mod.rs
diff options
context:
space:
mode:
authorJonas Maier <>2026-05-03 09:15:04 +0200
committerJonas Maier <>2026-05-03 09:15:04 +0200
commitd5953e52f0df8ca6727e71fa07f147467a7369c1 (patch)
treecffbb58207d2aa81fc6d765b005b1225914fb268 /src/run/mod.rs
parenta9bf864158e67353f57047cdc4d6b0e325d73eae (diff)
downloadpish-d5953e52f0df8ca6727e71fa07f147467a7369c1.tar.gz
complete keybind overhaul, not working, afraid to loose it
Diffstat (limited to 'src/run/mod.rs')
-rw-r--r--src/run/mod.rs18
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> {