about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--tvix/castore-go/default.nix10
-rw-r--r--tvix/default.nix10
-rw-r--r--tvix/store-go/default.nix10
3 files changed, 16 insertions, 14 deletions
diff --git a/tvix/castore-go/default.nix b/tvix/castore-go/default.nix
index 09bbb77f81d4..c5fe2f5d7834 100644
--- a/tvix/castore-go/default.nix
+++ b/tvix/castore-go/default.nix
@@ -1,5 +1,10 @@
 { depot, pkgs, ... }:
 
+let
+  regenerate = pkgs.writeShellScriptBin "regenerate" ''
+    (cd $(git rev-parse --show-toplevel)/tvix/castore-go && rm *.pb.go && cp ${depot.tvix.castore.protos.go-bindings}/*.pb.go . && chmod +w *.pb.go)
+  '';
+in
 (pkgs.buildGoModule {
   name = "castore-go";
   src = depot.third_party.gitignoreSource ./.;
@@ -10,10 +15,10 @@
       label = ":water_buffalo: ensure generated protobuf files match";
       needsOutput = true;
       command = pkgs.writeShellScript "pb-go-check" ''
-        ${depot.tvix.castore-go-generate}
+        ${regenerate}
         if [[ -n "$(git status --porcelain -unormal)" ]]; then
             echo "-----------------------------"
-            echo ".pb.go files need to be updated, run //tvix:castore-go-generate"
+            echo ".pb.go files need to be updated, mg run //tvix/castore-go/regenerate"
             echo "-----------------------------"
             git status -unormal
             exit 1
@@ -22,4 +27,5 @@
       alwaysRun = true;
     };
   };
+  passthru.regenerate = regenerate;
 })
diff --git a/tvix/default.nix b/tvix/default.nix
index 28e64d574a6e..43b942cef096 100644
--- a/tvix/default.nix
+++ b/tvix/default.nix
@@ -106,16 +106,6 @@ in
   # workspace too.
   shell = (import ./shell.nix { inherit pkgs; });
 
-  # Update `.pb.go` files in tvix/castore-go with the generated ones.
-  castore-go-generate = pkgs.writeShellScriptBin "castore-go-protogen" ''
-    (cd $(git rev-parse --show-toplevel)/tvix/castore-go && rm *.pb.go && cp ${depot.tvix.castore.protos.go-bindings}/*.pb.go . && chmod +w *.pb.go)
-  '';
-
-  # Update `.pb.go` files in tvix/store-go with the generated ones.
-  store-go-generate = pkgs.writeShellScriptBin "store-go-protogen" ''
-    (cd $(git rev-parse --show-toplevel)/tvix/store-go && rm *.pb.go && cp ${depot.tvix.store.protos.go-bindings}/*.pb.go . && chmod +w *.pb.go)
-  '';
-
   # Build the Rust documentation for publishing on docs.tvix.dev.
   rust-docs = pkgs.stdenv.mkDerivation {
     inherit cargoDeps;
diff --git a/tvix/store-go/default.nix b/tvix/store-go/default.nix
index b559594a27f2..eb814d1e3ae9 100644
--- a/tvix/store-go/default.nix
+++ b/tvix/store-go/default.nix
@@ -1,5 +1,10 @@
 { depot, pkgs, ... }:
 
+let
+  regenerate = pkgs.writeShellScriptBin "regenerate" ''
+    (cd $(git rev-parse --show-toplevel)/tvix/store-go && rm *.pb.go && cp ${depot.tvix.store.protos.go-bindings}/*.pb.go . && chmod +w *.pb.go)
+  '';
+in
 (pkgs.buildGoModule {
   name = "store-go";
   src = depot.third_party.gitignoreSource ./.;
@@ -10,10 +15,10 @@
       label = ":water_buffalo: ensure generated protobuf files match";
       needsOutput = true;
       command = pkgs.writeShellScript "pb-go-check" ''
-        ${depot.tvix.store-go-generate}
+        ${regenerate}
         if [[ -n "$(git status --porcelain -unormal)" ]]; then
             echo "-----------------------------"
-            echo ".pb.go files need to be updated, run //tvix:store-go-generate"
+            echo ".pb.go files need to be updated, mg run //tvix/store-go/generate"
             echo "-----------------------------"
             git status -unormal
             exit 1
@@ -22,4 +27,5 @@
       alwaysRun = true;
     };
   };
+  passthru.regenerate = regenerate;
 })