diff options
Diffstat (limited to 'tvix/store/src/import.rs')
-rw-r--r-- | tvix/store/src/import.rs | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/tvix/store/src/import.rs b/tvix/store/src/import.rs index 888380bca9..70a97982e6 100644 --- a/tvix/store/src/import.rs +++ b/tvix/store/src/import.rs @@ -81,7 +81,7 @@ pub fn path_to_name(path: &Path) -> std::io::Result<&str> { pub fn derive_nar_ca_path_info( nar_size: u64, nar_sha256: [u8; 32], - ca: Option<CAHash>, + ca: Option<&CAHash>, root_node: Node, ) -> PathInfo { // assemble the [crate::proto::PathInfo] object. @@ -102,8 +102,9 @@ pub fn derive_nar_ca_path_info( } } -/// Ingest the given path `path` and register the resulting output path in the -/// [`PathInfoService`] as a recursive fixed output NAR. +/// Ingest the contents at the given path `path` into castore, and registers the +/// resulting root node in the passed PathInfoService, using the "NAR sha256 +/// digest" and the passed name for output path calculation. #[instrument(skip_all, fields(store_name=name, path=?path), err)] pub async fn import_path_as_nar_ca<BS, DS, PS, NS, P>( path: P, @@ -137,20 +138,20 @@ where ) })?; - // assemble a new root_node with a name that is derived from the nar hash. + // rename the root node to match the calculated output path. let root_node = root_node.rename(output_path.to_string().into_bytes().into()); log_node(&root_node, path.as_ref()); let path_info = derive_nar_ca_path_info( nar_size, nar_sha256, - Some(CAHash::Nar(NixHash::Sha256(nar_sha256))), + Some(&CAHash::Nar(NixHash::Sha256(nar_sha256))), root_node, ); // This new [`PathInfo`] that we get back from there might contain additional signatures or // information set by the service itself. In this function, we silently swallow it because - // callers doesn't really need it. + // callers don't really need it. let _path_info = path_info_service.as_ref().put(path_info).await?; Ok(output_path.to_owned()) |