about summary refs log tree commit diff
path: root/tools/tvlc/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'tools/tvlc/default.nix')
-rw-r--r--tools/tvlc/default.nix25
1 files changed, 20 insertions, 5 deletions
diff --git a/tools/tvlc/default.nix b/tools/tvlc/default.nix
index de18af236fdd..ef0c69927fef 100644
--- a/tools/tvlc/default.nix
+++ b/tools/tvlc/default.nix
@@ -1,17 +1,31 @@
 { pkgs, depot, ... }:
 
 let
-  commonsh = ./common.sh;
-
-  # TODO(riking): path deduction
-  #tvix-instantiate="${third_party.nix}/bin/nix-instantiate"
   pathScripts = pkgs.writeShellScript "imports" ''
+    export tvix_instantiate="${depot.third_party.nix}/bin/nix-instantiate"
+    export depot_scanner="${depot.tools.depot-scanner}/bin/depot-scanner"
   '';
 
   # setup: git rev-parse --show-toplevel > $tvlc_root/depot_root
   # setup: mkdir $tvlc_root/clients
   # setup: echo 1 > $tvlc_root/next_clientid
 
+  commonsh = pkgs.stdenv.mkDerivation {
+    name = "common.sh";
+    src = ./common.sh;
+    doCheck = true;
+    unpackPhase = "true";
+    buildPhase = ''
+      substitute ${./common.sh} $out --replace path-scripts ${pathScripts}
+    '';
+    checkPhase = ''
+      ${pkgs.shellcheck}/bin/shellcheck $out ${pathScripts} && echo "SHELLCHECK OK"
+    '';
+    installPhase = ''
+      chmod +x $out
+    '';
+  };
+
   tvlcNew = pkgs.stdenv.mkDerivation {
     name = "tvlc-new";
     src = ./tvlc-new;
@@ -22,7 +36,7 @@ let
       substitute ${./tvlc-new} $out --replace common.sh ${commonsh}
     '';
     checkPhase = ''
-      ${pkgs.shellcheck}/bin/shellcheck $out ${commonsh} && echo "SHELLCHECK OK"
+      ${pkgs.shellcheck}/bin/shellcheck $out ${commonsh} ${pathScripts} && echo "SHELLCHECK OK"
     '';
     installPhase = ''
       chmod +x $out
@@ -30,6 +44,7 @@ let
   };
 
 in pkgs.stdenv.mkDerivation rec {
+  inherit pathScripts;
   inherit commonsh;
   inherit tvlcNew;
 }