diff options
| author | Jonas Maier <jonas@x77.dev> | 2026-03-09 18:41:11 +0100 |
|---|---|---|
| committer | Jonas Maier <jonas@x77.dev> | 2026-03-09 18:41:11 +0100 |
| commit | 91250e99f113fa754f40d1d26afd774bbb25a438 (patch) | |
| tree | 024b085da57503f1d4bc2d9ad426dbedbba285ad /src/run/mod.rs | |
| parent | 48bb048d75c50baceba4dccd6c5dc1fff23a72fc (diff) | |
| download | pish-91250e99f113fa754f40d1d26afd774bbb25a438.tar.gz | |
correct symlinking
Diffstat (limited to 'src/run/mod.rs')
| -rw-r--r-- | src/run/mod.rs | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/run/mod.rs b/src/run/mod.rs index 8c36f91..da62778 100644 --- a/src/run/mod.rs +++ b/src/run/mod.rs @@ -62,6 +62,15 @@ impl Executor { command.stdout(Stdio::from(stdout)); } + if let Some(sr) = self.se.lock().unwrap().socket_running.as_ref() { + let my_path = std::env::var_os("PATH").expect("no PATH - seriously?"); + let mut new_path = sr.path().as_os_str().as_bytes().to_vec(); + new_path.push(b':'); + new_path.extend_from_slice(my_path.as_bytes()); + command.env("PATH", OsStr::from_bytes(&new_path)); + command.env("PISH_SOCKET", sr.socket_path().as_os_str()); + } + let child = match command.spawn() { Ok(c) => c, Err(e) => { @@ -185,7 +194,13 @@ impl Executor { } fn execute_fun_decl(&mut self, fd: parse::FunDecl<PostExpansion>) -> Result<(), ExecError> { - self.se.lock().unwrap().funs.insert(fd.name, *fd.body.body); + self.se + .lock() + .unwrap() + .funs + .insert(fd.name.clone(), *fd.body.body); + crate::export_fun::create_function_hook(self.se.clone(), &fd.name); + // TODO: very ugly to ad-hoc keep export stuff & session data in sync here Ok(()) } |
