about summary refs log tree commit diff
path: root/tools/tvlc/default.nix
diff options
context:
space:
mode:
authorKane York <kanepyork@gmail.com>2020-08-17T01·03-0700
committerkanepyork <rikingcoding@gmail.com>2020-08-19T01·23+0000
commit92d4554b622ea85ca08d351f696f48a37c67e8b0 (patch)
treed7f5d041acef637f6e805daaac2550b7719c9f44 /tools/tvlc/default.nix
parentd6f17f48de91538c5b3623484672c1a81d207cba (diff)
feat(tools/tvlc): init project r/1681
tvlc is a tool for managing sparse git worktrees of the TVL depot.
It is still in development; near-term tasks include a setup script,
Nix dependency resolution, worktree removal, and the dispatch
script.

See cs.tvl.fyi/depot/docs/designs/SPARSE_CHECKOUTS.md for more info.

Change-Id: Iad96656f0206178980fe7dcadd3dffe70d690f8f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1760
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Diffstat (limited to 'tools/tvlc/default.nix')
-rw-r--r--tools/tvlc/default.nix35
1 files changed, 35 insertions, 0 deletions
diff --git a/tools/tvlc/default.nix b/tools/tvlc/default.nix
new file mode 100644
index 0000000000..de18af236f
--- /dev/null
+++ b/tools/tvlc/default.nix
@@ -0,0 +1,35 @@
+{ pkgs, depot, ... }:
+
+let
+  commonsh = ./common.sh;
+
+  # TODO(riking): path deduction
+  #tvix-instantiate="${third_party.nix}/bin/nix-instantiate"
+  pathScripts = pkgs.writeShellScript "imports" ''
+  '';
+
+  # setup: git rev-parse --show-toplevel > $tvlc_root/depot_root
+  # setup: mkdir $tvlc_root/clients
+  # setup: echo 1 > $tvlc_root/next_clientid
+
+  tvlcNew = pkgs.stdenv.mkDerivation {
+    name = "tvlc-new";
+    src = ./tvlc-new;
+    doCheck = true;
+
+    unpackPhase = "true";
+    buildPhase = ''
+      substitute ${./tvlc-new} $out --replace common.sh ${commonsh}
+    '';
+    checkPhase = ''
+      ${pkgs.shellcheck}/bin/shellcheck $out ${commonsh} && echo "SHELLCHECK OK"
+    '';
+    installPhase = ''
+      chmod +x $out
+    '';
+  };
+
+in pkgs.stdenv.mkDerivation rec {
+  inherit commonsh;
+  inherit tvlcNew;
+}