summaryrefslogtreecommitdiff
path: root/subplotlib
diff options
context:
space:
mode:
authorDaniel Silverstone <dsilvers@digital-scurf.org>2022-03-19 17:44:30 +0000
committerDaniel Silverstone <dsilvers@digital-scurf.org>2022-03-19 17:44:30 +0000
commit3ab594188fa1c742558b37035fb0cbd72bf80383 (patch)
tree9bffb0027bf7db8ca23327c17957d228347a5a8b /subplotlib
parent0bc4388bdd75a50bbb847dc3085d9a798301730a (diff)
downloadsubplot-3ab594188fa1c742558b37035fb0cbd72bf80383.tar.gz
(subplotlib): Make runcmd report about executed processes
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
Diffstat (limited to 'subplotlib')
-rw-r--r--subplotlib/src/steplibrary/runcmd.rs28
1 files changed, 24 insertions, 4 deletions
diff --git a/subplotlib/src/steplibrary/runcmd.rs b/subplotlib/src/steplibrary/runcmd.rs
index 781e789..fc93b7e 100644
--- a/subplotlib/src/steplibrary/runcmd.rs
+++ b/subplotlib/src/steplibrary/runcmd.rs
@@ -260,15 +260,28 @@ pub fn try_to_run_in(context: &ScenarioContext, dirname: &str, argv0: &str, args
if dirname != USE_CWD {
datadir = datadir.join(dirname);
}
- let mut proc = Command::new(argv0);
- proc.args(&shell_words::split(args)?);
+ let mut proc = Command::new(&argv0);
+ let args = shell_words::split(args)?;
+ proc.args(&args);
proc.current_dir(&datadir);
+
+ println!(
+ "Running `{}` with args {:?}\nRunning in {}",
+ argv0.display(),
+ args,
+ datadir.display()
+ );
proc.env("HOME", &datadir);
proc.env("TMPDIR", &datadir);
context.with(
|runcmd: &Runcmd| {
- for (k, v) in runcmd.env.iter() {
+ for (k, v) in runcmd
+ .env
+ .iter()
+ .filter(|(k, _)| k.to_str() != Some("PATH"))
+ {
+ println!("ENV: {} = {}", k.to_string_lossy(), v.to_string_lossy());
proc.env(k, v);
}
Ok(())
@@ -277,7 +290,8 @@ pub fn try_to_run_in(context: &ScenarioContext, dirname: &str, argv0: &str, args
)?;
let path = context.with(|runcmd: &Runcmd| Ok(runcmd.join_paths()?), false)?;
- proc.env("PATH", path);
+ proc.env("PATH", &path);
+ println!("PATH: {}", path.to_string_lossy());
proc.stdin(Stdio::null())
.stdout(Stdio::piped())
.stderr(Stdio::piped());
@@ -287,6 +301,12 @@ pub fn try_to_run_in(context: &ScenarioContext, dirname: &str, argv0: &str, args
std::mem::swap(&mut runcmd.stdout, &mut output.stdout);
std::mem::swap(&mut runcmd.stderr, &mut output.stderr);
runcmd.exitcode = output.status.code();
+ println!("Exit code: {}", runcmd.exitcode.unwrap_or(-1));
+ println!(
+ "Stdout:\n{}\nStderr:\n{}\n",
+ runcmd.stdout_as_string(),
+ runcmd.stderr_as_string()
+ );
Ok(())
},
false,