feat(tvix/nix-compat): Use StorePath in Output

https: //b.tvl.fyi/issues/264
Change-Id: Icb09be9643245cc68d09f01d7723af2d44d6bd1a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11001
Autosubmit: Peter Kolloch <info@eigenvalue.net>
Reviewed-by: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
This commit is contained in:
Peter Kolloch 2024-02-21 18:31:35 +07:00 committed by clbot
parent 035f617b7f
commit fde488ec6d
11 changed files with 119 additions and 82 deletions

View file

@ -161,7 +161,13 @@ impl Derivation {
"fixed:out:{}{}:{}",
ca_kind_prefix(ca_hash),
ca_hash.digest().to_nix_hex_string(),
out_output.path
out_output
.path
.as_ref()
.map(StorePath::to_absolute_path)
.as_ref()
.map(|s| s as &str)
.unwrap_or(""),
))
.finalize()
.into(),
@ -239,7 +245,7 @@ impl Derivation {
// Assert that outputs are not yet populated, to avoid using this function wrongly.
// We don't also go over self.environment, but it's a sufficient
// footgun prevention mechanism.
assert!(output.path.is_empty());
assert!(output.path.is_none());
let path_name = output_path_name(name, output_name);
@ -258,7 +264,7 @@ impl Derivation {
})?
};
output.path = abs_store_path.to_absolute_path();
output.path = Some(abs_store_path.to_owned());
self.environment.insert(
output_name.to_string(),
abs_store_path.to_absolute_path().into(),