feat(tvix/nix-compat/derivation): make use of NixPath in some places
Some of these strings are actually just the nix hash representation of the hash calculated earlier. There's another one passed around via calculate_drv_replacement_str, but that's left for a followup. Change-Id: Id99a2a926a980d679eb49c34ee6a36bf224699b0 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8218 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su> Autosubmit: flokli <flokli@flokli.de>
This commit is contained in:
parent
c2a681eaff
commit
1f9b582239
2 changed files with 14 additions and 6 deletions
|
@ -1,4 +1,7 @@
|
|||
use crate::store_path::{self, StorePath};
|
||||
use crate::{
|
||||
nixhash::NixHash,
|
||||
store_path::{self, StorePath},
|
||||
};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use sha2::{Digest, Sha256};
|
||||
use std::collections::{BTreeMap, BTreeSet};
|
||||
|
@ -100,7 +103,7 @@ impl Derivation {
|
|||
/// This is: `text:`,
|
||||
/// all d.InputDerivations and d.InputSources (sorted, separated by a `:`),
|
||||
/// a `:`,
|
||||
/// a `sha256:`, followed by the sha256 digest of the ATerm representation (hex-encoded)
|
||||
/// the nix string representation of the sha256 sum of the ATerm representation
|
||||
/// a `:`,
|
||||
/// the storeDir, followed by a `:`,
|
||||
/// the name of a derivation,
|
||||
|
@ -135,9 +138,11 @@ impl Derivation {
|
|||
derivation_hasher.finalize()
|
||||
};
|
||||
|
||||
let h = NixHash::new(crate::nixhash::HashAlgo::Sha256, aterm_digest.to_vec());
|
||||
|
||||
s.push_str(&format!(
|
||||
"sha256:{:x}:{}:{}.drv",
|
||||
aterm_digest,
|
||||
"{}:{}:{}.drv",
|
||||
h.to_nix_hash_string(),
|
||||
store_path::STORE_DIR,
|
||||
name,
|
||||
));
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
use crate::derivation::DerivationError;
|
||||
use crate::nixbase32;
|
||||
use crate::nixhash::NixHash;
|
||||
use crate::store_path::{self, StorePath};
|
||||
use sha2::{Digest, Sha256};
|
||||
|
||||
|
@ -67,9 +68,11 @@ pub fn path_with_references<S: AsRef<str>, I: IntoIterator<Item = S>, C: AsRef<[
|
|||
hasher.finalize()
|
||||
};
|
||||
|
||||
let h = NixHash::new(crate::nixhash::HashAlgo::Sha256, content_digest.to_vec());
|
||||
|
||||
s.push_str(&format!(
|
||||
":sha256:{:x}:{}:{}",
|
||||
content_digest,
|
||||
":{}:{}:{}",
|
||||
h.to_nix_hash_string(),
|
||||
store_path::STORE_DIR,
|
||||
name
|
||||
));
|
||||
|
|
Loading…
Reference in a new issue