about summary refs log tree commit diff
path: root/tvix/store-go/pathinfo.go
diff options
context:
space:
mode:
authorFlorian Klink <flokli@flokli.de>2023-10-17T22·27+0100
committerclbot <clbot@tvl.fyi>2023-10-22T17·04+0000
commit9118dc8a5056ad0cdb91a0688f50ac5d6e28a1ec (patch)
tree5d705773016676896bfe35a2da17581ba4827e61 /tvix/store-go/pathinfo.go
parentba9a62ca9f82f00aec1b8ad163252476cbb5322a (diff)
refactor(tvix/store): move deriver field into narinfo submessage r/6869
This information is present in the .narinfo files, it should have gone
there.

Change-Id: Ib43d0cf30c2795bf1fe77c46646174353ade0458
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9794
Autosubmit: flokli <flokli@flokli.de>
Reviewed-by: Connor Brewster <cbrewster@hey.com>
Tested-by: BuildkiteCI
Diffstat (limited to 'tvix/store-go/pathinfo.go')
-rw-r--r--tvix/store-go/pathinfo.go28
1 files changed, 14 insertions, 14 deletions
diff --git a/tvix/store-go/pathinfo.go b/tvix/store-go/pathinfo.go
index 8c0b94f200..d0384c4fe2 100644
--- a/tvix/store-go/pathinfo.go
+++ b/tvix/store-go/pathinfo.go
@@ -49,6 +49,20 @@ func (p *PathInfo) Validate() (*storepath.StorePath, error) {
 				)
 			}
 		}
+
+		// If the Deriver field is populated, ensure it parses to a StorePath.
+		// We can't check for it to *not* end with .drv, as the .drv files produced by
+		// recursive Nix end with multiple .drv suffixes, and only one is popped when
+		// converting to this field.
+		if deriver := narInfo.GetDeriver(); deriver != nil {
+			deriverStorePath := storepath.StorePath{
+				Name:   string(deriver.GetName()),
+				Digest: deriver.GetDigest(),
+			}
+			if err := deriverStorePath.Validate(); err != nil {
+				return nil, fmt.Errorf("invalid deriver field: %w", err)
+			}
+		}
 	}
 
 	// ensure there is a (root) node present
@@ -81,19 +95,5 @@ func (p *PathInfo) Validate() (*storepath.StorePath, error) {
 		return nil, fmt.Errorf("unable to parse root node name %s as StorePath: %w", rootNodeName, err)
 	}
 
-	// If the Deriver field is populated, ensure it parses to a StorePath.
-	// We can't check for it to *not* end with .drv, as the .drv files produced by
-	// recursive Nix end with multiple .drv suffixes, and only one is popped when
-	// converting to this field.
-	if p.Deriver != nil {
-		deriverStorePath := storepath.StorePath{
-			Name:   string(p.Deriver.GetName()),
-			Digest: p.Deriver.GetDigest(),
-		}
-		if err := deriverStorePath.Validate(); err != nil {
-			return nil, fmt.Errorf("invalid deriver field: %w", err)
-		}
-	}
-
 	return storePath, nil
 }