summaryrefslogtreecommitdiff
path: root/subplotlib/src/steplibrary/runcmd.rs
diff options
context:
space:
mode:
Diffstat (limited to 'subplotlib/src/steplibrary/runcmd.rs')
-rw-r--r--subplotlib/src/steplibrary/runcmd.rs10
1 files changed, 7 insertions, 3 deletions
diff --git a/subplotlib/src/steplibrary/runcmd.rs b/subplotlib/src/steplibrary/runcmd.rs
index 7075b68..2bf8c56 100644
--- a/subplotlib/src/steplibrary/runcmd.rs
+++ b/subplotlib/src/steplibrary/runcmd.rs
@@ -46,8 +46,13 @@ impl ContextElement for Runcmd {
self.env.drain();
self.paths.drain(..);
self.env.insert("SHELL".into(), "/bin/sh".into());
- self.env
- .insert("PATH".into(), env::join_paths(DEFAULT_PATHS.iter())?);
+ self.env.insert(
+ "PATH".into(),
+ env::var_os("PATH")
+ .map(Ok)
+ .unwrap_or_else(|| env::join_paths(DEFAULT_PATHS.iter()))?,
+ );
+
// Having assembled the 'default' environment, override it with injected
// content from the calling environment.
for (k, v) in env::vars_os() {
@@ -125,7 +130,6 @@ pub fn try_to_run_in(context: &ScenarioContext, dirname: &str, argv0: &str, args
let mut proc = Command::new(argv0);
proc.args(&shell_words::split(args)?);
proc.current_dir(&datadir);
- proc.env_clear();
proc.env("HOME", &datadir);
proc.env("TMPDIR", &datadir);