diff options
Diffstat (limited to 'crates/runner/src/task.rs')
-rw-r--r-- | crates/runner/src/task.rs | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/crates/runner/src/task.rs b/crates/runner/src/task.rs index f045d00..fd640ad 100644 --- a/crates/runner/src/task.rs +++ b/crates/runner/src/task.rs @@ -167,18 +167,20 @@ fn unpack_dependency<P1: AsRef<Path>, P2: AsRef<Path>>(filename: P1, dest: P2) - fn unpack_dependencies(input_hash: &InputHash, task: &Task) -> Result<()> { let task_tmp_dir = paths::task_tmp_dir(input_hash); - let downloads_dir = paths::join(&[&task_tmp_dir, paths::TASK_DLDIR]); let depends_dir = paths::join(&[&task_tmp_dir, paths::TASK_TMP_DEPENDS_SUBDIR]); - fs::mkdir(&downloads_dir)?; fs::mkdir(&depends_dir)?; for dep in &task.depends { match dep { - Dependency::Fetch { name, .. } => { + Dependency::Fetch { + name, target_dir, .. + } => { + let path = paths::join(&[&task_tmp_dir, &target_dir]); + fs::mkdir(&path)?; fs::copy( paths::join(&[paths::DOWNLOADS_DIR, name]), - paths::join(&[&downloads_dir, name]), + paths::join(&[&path, name]), )?; } Dependency::Task { output, path } => { |