about summary refs log tree commit diff
path: root/tvix/derivation/src/validate.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tvix/derivation/src/validate.rs')
-rw-r--r--tvix/derivation/src/validate.rs8
1 files changed, 6 insertions, 2 deletions
diff --git a/tvix/derivation/src/validate.rs b/tvix/derivation/src/validate.rs
index c6cd2f8b9e3e..8a8c1b506911 100644
--- a/tvix/derivation/src/validate.rs
+++ b/tvix/derivation/src/validate.rs
@@ -4,7 +4,11 @@ use tvix_store::store_path::StorePath;
 impl Derivation {
     /// validate ensures a Derivation struct is properly populated,
     /// and returns a [ValidateDerivationError] if not.
-    pub fn validate(&self) -> Result<(), DerivationError> {
+    /// if `validate_output_paths` is set to false, the output paths are
+    /// excluded from validation.
+    /// This is helpful to validate struct population before invoking
+    /// [Derivation::calculate_output_paths].
+    pub fn validate(&self, validate_output_paths: bool) -> Result<(), DerivationError> {
         // Ensure the number of outputs is > 1
         if self.outputs.is_empty() {
             return Err(DerivationError::NoOutputs());
@@ -41,7 +45,7 @@ impl Derivation {
                 break;
             }
 
-            if let Err(e) = output.validate() {
+            if let Err(e) = output.validate(validate_output_paths) {
                 return Err(DerivationError::InvalidOutput(output_name.to_string(), e));
             }
         }