summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crates/driver/src/driver.rs10
-rw-r--r--crates/runner/src/task.rs8
2 files changed, 9 insertions, 9 deletions
diff --git a/crates/driver/src/driver.rs b/crates/driver/src/driver.rs
index f43f8e8..683e111 100644
--- a/crates/driver/src/driver.rs
+++ b/crates/driver/src/driver.rs
@@ -268,10 +268,12 @@ impl<'ctx> Driver<'ctx> {
.output
.iter()
.map(|(name, Output { path, .. })| {
- (
- name.clone(),
- path.as_ref().map(String::as_str).unwrap_or(".").to_string(),
- )
+ let output_path = if let Some(path) = path {
+ paths::join(&[paths::TASK_DESTDIR, path])
+ } else {
+ paths::TASK_DESTDIR.to_string()
+ };
+ (name.clone(), output_path)
})
.collect();
diff --git a/crates/runner/src/task.rs b/crates/runner/src/task.rs
index dc15ec5..f045d00 100644
--- a/crates/runner/src/task.rs
+++ b/crates/runner/src/task.rs
@@ -2,7 +2,7 @@ use std::{
collections::HashMap,
io::BufWriter,
os::unix::prelude::CommandExt,
- path::{Path, PathBuf},
+ path::Path,
process::{self, Command, Stdio},
time::Instant,
};
@@ -194,10 +194,8 @@ fn unpack_dependencies(input_hash: &InputHash, task: &Task) -> Result<()> {
}
fn collect_output(input_hash: &InputHash, path: &str) -> Result<Option<ArchiveHash>> {
- let source: PathBuf = [&paths::task_tmp_dir(input_hash), paths::TASK_DESTDIR, path]
- .iter()
- .collect();
- if !source.is_dir() {
+ let source = paths::join(&[&paths::task_tmp_dir(input_hash), path]);
+ if !Path::new(&source).is_dir() {
return Ok(None);
}