about summary refs log tree commit diff
path: root/tvix
diff options
context:
space:
mode:
Diffstat (limited to 'tvix')
-rw-r--r--tvix/default.nix19
-rw-r--r--tvix/shell.nix33
2 files changed, 36 insertions, 16 deletions
diff --git a/tvix/default.nix b/tvix/default.nix
index 34acde434a80..cfb77f792bff 100644
--- a/tvix/default.nix
+++ b/tvix/default.nix
@@ -94,22 +94,9 @@ in
   # lacking something, but it is required for some people's workflows.
   #
   # This shell can be entered with e.g. `mg shell //tvix:shell`.
-  shell = pkgs.mkShell {
-    name = "tvix-rust-dev-env";
-    packages = [
-      pkgs.buf-language-server
-      pkgs.cargo
-      pkgs.cargo-machete
-      pkgs.clippy
-      pkgs.evans
-      pkgs.fuse
-      pkgs.pkg-config
-      pkgs.rust-analyzer
-      pkgs.rustc
-      pkgs.rustfmt
-      pkgs.protobuf
-    ] ++ iconvDarwinDep;
-  };
+  # This is a separate file, so it can be used individually in the tvix josh
+  # workspace too.
+  shell = (import ./shell.nix { inherit pkgs; });
 
   # Builds and tests the code in castore/protos.
   castore-protos-go = pkgs.buildGoModule {
diff --git a/tvix/shell.nix b/tvix/shell.nix
new file mode 100644
index 000000000000..1a7e9ddd2b56
--- /dev/null
+++ b/tvix/shell.nix
@@ -0,0 +1,33 @@
+# This file is shell.nix in the tvix josh workspace,
+# *and* used to provide the //tvix:shell attribute in a full depot checkout.
+# Hence, it may not use depot as a toplevel argument.
+
+{
+  # This falls back to the tvix josh workspace-provided nixpkgs checkout.
+  # In the case of depot, it's always set explicitly.
+  pkgs ? (import ./nixpkgs {
+    depotOverlays = false;
+    depot.third_party.sources = import ./sources { };
+  })
+, ...
+}:
+
+let
+  iconvDarwinDep = pkgs.lib.optionals pkgs.stdenv.isDarwin [ pkgs.libiconv ];
+in
+pkgs.mkShell {
+  name = "tvix-rust-dev-env";
+  packages = [
+    pkgs.buf-language-server
+    pkgs.cargo
+    pkgs.cargo-machete
+    pkgs.clippy
+    pkgs.evans
+    pkgs.fuse
+    pkgs.pkg-config
+    pkgs.rust-analyzer
+    pkgs.rustc
+    pkgs.rustfmt
+    pkgs.protobuf
+  ] ++ iconvDarwinDep;
+}