From 083e24bbb1a216b43bfa4fa2e509a1ee6a88ad46 Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Mon, 16 Jan 2023 15:55:16 +0100 Subject: feat(tvix/derivation): add validate_output_paths flag for validate This allows calling validate() on a derivation that doesn't have its output paths already calculated yet. It allows offloading some of the error checking in builtins.derivation* to be offloaded to that function. Change-Id: Ib4aeadc0eb6583ef8cd765f33e9a9ec32be62729 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7848 Reviewed-by: tazjin Autosubmit: flokli Tested-by: BuildkiteCI --- tvix/derivation/src/output.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'tvix/derivation/src/output.rs') diff --git a/tvix/derivation/src/output.rs b/tvix/derivation/src/output.rs index 982ac7c9eb..369efca031 100644 --- a/tvix/derivation/src/output.rs +++ b/tvix/derivation/src/output.rs @@ -24,10 +24,12 @@ impl Output { self.hash.is_some() } - pub fn validate(&self) -> Result<(), OutputError> { + pub fn validate(&self, validate_output_paths: bool) -> Result<(), OutputError> { // TODO: add validation for hash, hashAlgo - if let Err(e) = StorePath::from_absolute_path(&self.path) { - return Err(OutputError::InvalidOutputPath(self.path.to_string(), e)); + if validate_output_paths { + if let Err(e) = StorePath::from_absolute_path(&self.path) { + return Err(OutputError::InvalidOutputPath(self.path.to_string(), e)); + } } Ok(()) } -- cgit 1.4.1