refactor(nix-compat/store_path): drop build_nar_based_store_path
This is the only (remaining) occurence of it, and not really more code than just calling store_path::build_ca_path with `CAHash::Nar(NixHash::Sha256(…))`, especially considering we need the CAHash in the PathInfo struct later anyways - so let's remove this function. Change-Id: Ia82212086062c366e0280ca0823d9e68a3f91d3a Reviewed-on: https://cl.tvl.fyi/c/depot/+/12632 Reviewed-by: edef <edef@edef.eu> Autosubmit: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
This commit is contained in:
parent
1277b0c088
commit
a94414e7ff
2 changed files with 5 additions and 17 deletions
|
@ -119,20 +119,6 @@ where
|
||||||
.map_err(BuildStorePathError::InvalidStorePath)
|
.map_err(BuildStorePathError::InvalidStorePath)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// For given NAR sha256 digest and name, return the new [StorePath] this would
|
|
||||||
/// have, or an error, in case the name is invalid.
|
|
||||||
pub fn build_nar_based_store_path<'a, SP>(
|
|
||||||
nar_sha256_digest: &[u8; 32],
|
|
||||||
name: &'a str,
|
|
||||||
) -> Result<StorePath<SP>, BuildStorePathError>
|
|
||||||
where
|
|
||||||
SP: std::cmp::Eq + std::ops::Deref<Target = str> + std::convert::From<&'a str>,
|
|
||||||
{
|
|
||||||
let nar_hash_with_mode = CAHash::Nar(NixHash::Sha256(nar_sha256_digest.to_owned()));
|
|
||||||
|
|
||||||
build_ca_path(name, &nar_hash_with_mode, Vec::<String>::new(), false)
|
|
||||||
}
|
|
||||||
|
|
||||||
/// This builds an input-addressed store path.
|
/// This builds an input-addressed store path.
|
||||||
///
|
///
|
||||||
/// Input-addresed store paths are always derivation outputs, the "input" in question is the
|
/// Input-addresed store paths are always derivation outputs, the "input" in question is the
|
||||||
|
|
|
@ -99,11 +99,13 @@ where
|
||||||
// Ask for the NAR size and sha256
|
// Ask for the NAR size and sha256
|
||||||
let (nar_size, nar_sha256) = nar_calculation_service.calculate_nar(&root_node).await?;
|
let (nar_size, nar_sha256) = nar_calculation_service.calculate_nar(&root_node).await?;
|
||||||
|
|
||||||
|
let ca = CAHash::Nar(NixHash::Sha256(nar_sha256));
|
||||||
|
|
||||||
// Calculate the output path. This might still fail, as some names are illegal.
|
// Calculate the output path. This might still fail, as some names are illegal.
|
||||||
// FUTUREWORK: express the `name` at the type level to be valid and move the conversion
|
// FUTUREWORK: express the `name` at the type level to be valid and move the conversion
|
||||||
// at the caller level.
|
// at the caller level.
|
||||||
let output_path: StorePath<String> = store_path::build_nar_based_store_path(&nar_sha256, name)
|
let output_path: StorePath<String> =
|
||||||
.map_err(|_| {
|
store_path::build_ca_path(name, &ca, std::iter::empty::<&str>(), false).map_err(|_| {
|
||||||
std::io::Error::new(
|
std::io::Error::new(
|
||||||
std::io::ErrorKind::InvalidData,
|
std::io::ErrorKind::InvalidData,
|
||||||
format!("invalid name: {}", name),
|
format!("invalid name: {}", name),
|
||||||
|
@ -122,7 +124,7 @@ where
|
||||||
nar_sha256,
|
nar_sha256,
|
||||||
signatures: vec![],
|
signatures: vec![],
|
||||||
deriver: None,
|
deriver: None,
|
||||||
ca: Some(CAHash::Nar(NixHash::Sha256(nar_sha256))),
|
ca: Some(ca),
|
||||||
})
|
})
|
||||||
.await?)
|
.await?)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue