From 46da864fea19baf6bedfeaf9634e105b40dcd7ce Mon Sep 17 00:00:00 2001 From: Agus Zubiaga Date: Sat, 18 May 2024 02:16:02 +0200 Subject: [PATCH] Handle ingested file prefix error --- crates/packaging/src/tarball.rs | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/crates/packaging/src/tarball.rs b/crates/packaging/src/tarball.rs index e39a3fad20..f50125bd5a 100644 --- a/crates/packaging/src/tarball.rs +++ b/crates/packaging/src/tarball.rs @@ -295,14 +295,21 @@ fn add_ingested_files( Ok(defs) => RecursiveValueDefIter::new(&defs).try_for_each(|(def, _)| { if let ValueDef::IngestedFileImport(IngestedFileImport { path, .. }) = def { if let StrLiteral::PlainLine(relative_path) = path.value { - let mut abs_path: PathBuf = dot_roc_path.into(); + let mut abs_path: PathBuf = relative_path.into(); abs_path.pop(); abs_path.push(relative_path); - builder.append_path_with_name( - abs_path.as_path(), - abs_path.strip_prefix(root_dir).unwrap(), - ) + match abs_path.strip_prefix(root_dir) { + Ok(name) => builder.append_path_with_name(abs_path.as_path(), name), + Err(_) => { + panic!( + "Cannot bundle {} (imported in {}) since it's outside {}", + abs_path.display(), + dot_roc_path.display(), + root_dir.display() + ); + } + } } else { unreachable!() }