diff options
| author | Jonas Maier <jonas@x77.dev> | 2026-05-12 21:27:52 +0200 |
|---|---|---|
| committer | Jonas Maier <jonas@x77.dev> | 2026-05-12 21:27:52 +0200 |
| commit | 116b0ac3c99fd317d3800637ca3f88f4d3874c1b (patch) | |
| tree | 29982dbac0ed23275c960ff1be24600e7468cbf6 /src/run/builtin.rs | |
| parent | 0e5d95663aaac8b7368c82290476694b561536d3 (diff) | |
| download | pish-116b0ac3c99fd317d3800637ca3f88f4d3874c1b.tar.gz | |
variable refactor: export builtin
Diffstat (limited to 'src/run/builtin.rs')
| -rw-r--r-- | src/run/builtin.rs | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/src/run/builtin.rs b/src/run/builtin.rs index e928d8b..c8224c0 100644 --- a/src/run/builtin.rs +++ b/src/run/builtin.rs @@ -461,7 +461,7 @@ impl Builtin for var { } let se = session.lock().unwrap(); if let Some(val) = se.vars.lookup(&args[0]) { - stdout.write_all(val.as_slice())?; + stdout.write_all(val.as_ref())?; Ok(()) } else { Err(Error::Exit(1)) @@ -965,3 +965,26 @@ impl Builtin for logo { Ok(()) } } + +#[derive(Copy, Clone)] +pub struct export; + +impl Builtin for export { + fn name(&self) -> &str { + "export" + } + + fn io( + &self, + session: Arc<Mutex<Session>>, + args: &[BString], + _stdin: &mut dyn Read, + _stdout: &mut dyn Write, + ) -> Result { + let mut session = session.lock().unwrap(); + for v in args.iter() { + session.vars.allow_export(&v, true); + } + Ok(()) + } +} |
