diff options
author | Jesse Luehrs <doy@tozt.net> | 2022-01-16 22:50:22 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2022-01-16 22:50:22 -0500 |
commit | a537464a915aea2e38c62df041996b8525367bde (patch) | |
tree | 37f7a13167d1ea4f655c3a695c662abd0febe525 /src/env.rs | |
parent | b66e1f99c30625988ec489f278e449a840bb3754 (diff) | |
download | nbsh-a537464a915aea2e38c62df041996b8525367bde.tar.gz nbsh-a537464a915aea2e38c62df041996b8525367bde.zip |
move default environment variable setting to shell initialization
Diffstat (limited to 'src/env.rs')
-rw-r--r-- | src/env.rs | 17 |
1 files changed, 9 insertions, 8 deletions
@@ -26,19 +26,13 @@ pub struct V0 { impl Env { pub fn new() -> anyhow::Result<Self> { - let mut vars: std::collections::HashMap< - std::ffi::OsString, - std::ffi::OsString, - > = std::env::vars_os().collect(); - vars.insert("SHELL".into(), std::env::current_exe()?.into()); - vars.insert("TERM".into(), "screen".into()); let pwd = std::env::current_dir()?; Ok(Self::V0(V0 { idx: 0, latest_status: std::process::ExitStatus::from_raw(0), pwd: pwd.clone(), prev_pwd: crate::mutex::new(pwd), - vars, + vars: std::env::vars_os().collect(), })) } @@ -85,7 +79,14 @@ impl Env { } } - pub fn set_var<T: Into<std::ffi::OsString>>(&mut self, k: T, v: T) { + pub fn set_var< + K: Into<std::ffi::OsString>, + V: Into<std::ffi::OsString>, + >( + &mut self, + k: K, + v: V, + ) { match self { Self::V0(env) => { env.vars.insert(k.into(), v.into()); |