about summary refs log tree commit diff
diff options
context:
space:
mode:
authorVincent Ambo <mail@tazj.in>2022-05-02T10·40+0200
committertazjin <tazjin@tvl.su>2022-05-02T23·34+0000
commite81280732444f492894b7b47ce38a2b3293a31d1 (patch)
treeacfb6d300dc9066fea4d0e51e4ebd977bd92a880
parent0ce396bdab902be626a9055e991551ce6120551e (diff)
refactor: Replace //bin with //tools/depot-deps r/3997
This modifies the envrc configuration to add the result of building
//tools/depot-deps to $PATH, instead of dispatching through the
manually maintained list of symlinks.

While at it, I've cleaned up some stuff from that list that is no
longer actually used.

Change-Id: If345c44da75b23c06b7c7f435be0cb02f99aaac5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5513
Tested-by: BuildkiteCI
Reviewed-by: ezemtsov <eugene.zemtsov@gmail.com>
-rw-r--r--.envrc5
-rwxr-xr-xbin/__dispatch.sh66
l---------bin/age1
l---------bin/age-keygen1
l---------bin/depotfmt1
l---------bin/gerrit1
l---------bin/gerrit-update1
l---------bin/hash-password1
l---------bin/mg1
l---------bin/nint1
l---------bin/niv1
l---------bin/rebuild-system1
l---------bin/rink1
l---------bin/stern1
l---------bin/tf-glesys1
l---------bin/tf-keycloak1
-rw-r--r--tools/depot-deps.nix34
17 files changed, 36 insertions, 83 deletions
diff --git a/.envrc b/.envrc
index 162f060fc4..a2f3328870 100644
--- a/.envrc
+++ b/.envrc
@@ -1,5 +1,4 @@
 # Configure the local PATH to contain tools which are fetched ad-hoc
 # from Nix.
-
-export PATH="${PWD}/bin:${PATH}"
-export REPO_ROOT="${PWD}"
+use nix -A tools.depot-deps
+watch_file tools/depot-deps.nix
diff --git a/bin/__dispatch.sh b/bin/__dispatch.sh
deleted file mode 100755
index a8a9d26526..0000000000
--- a/bin/__dispatch.sh
+++ /dev/null
@@ -1,66 +0,0 @@
-#!/usr/bin/env bash
-# This script dispatches invocations transparently to programs instantiated from
-# Nix.
-#
-# To add a new tool, insert it into the case statement below by setting `attr`
-# to the key in nixpkgs which represents the program you want to run.
-set -ueo pipefail
-
-readonly REPO_ROOT=$(dirname "$0")/..
-TARGET_TOOL=$(basename "$0")
-
-case "${TARGET_TOOL}" in
-  age)
-    attr="third_party.nixpkgs.age"
-    ;;
-  age-keygen)
-    attr="third_party.nixpkgs.age"
-    ;;
-  gerrit)
-    attr="tools.gerrit-cli"
-    ;;
-  gerrit-update)
-    attr="tools.gerrit-update"
-    ;;
-  hash-password)
-    attr="tools.hash-password"
-    ;;
-  mg)
-    attr="tools.magrathea"
-    ;;
-  nint)
-    attr="nix.nint"
-    ;;
-  niv)
-    attr="third_party.nixpkgs.niv"
-    ;;
-  rebuild-system)
-    attr="ops.nixos.rebuild-system"
-    ;;
-  rink)
-    attr="third_party.nixpkgs.rink"
-    ;;
-  stern)
-    attr="third_party.nixpkgs.stern"
-    ;;
-  depotfmt)
-    attr="tools.depotfmt"
-    ;;
-  tf-glesys)
-    TARGET_TOOL="terraform"
-    attr="ops.glesys.terraform"
-    ;;
-  tf-keycloak)
-    TARGET_TOOL="terraform"
-    attr="ops.keycloak.terraform"
-    ;;
-  *)
-    echo "The tool '${TARGET_TOOL}' is currently not installed in this repository."
-    exit 1
-    ;;
-esac
-
-result=$(nix-build --no-out-link --attr "${attr}" "${REPO_ROOT}")
-PATH="${result}/bin:$PATH"
-
-exec "${TARGET_TOOL}" "${@}"
diff --git a/bin/age b/bin/age
deleted file mode 120000
index 8390ec9c96..0000000000
--- a/bin/age
+++ /dev/null
@@ -1 +0,0 @@
-__dispatch.sh
\ No newline at end of file
diff --git a/bin/age-keygen b/bin/age-keygen
deleted file mode 120000
index 8390ec9c96..0000000000
--- a/bin/age-keygen
+++ /dev/null
@@ -1 +0,0 @@
-__dispatch.sh
\ No newline at end of file
diff --git a/bin/depotfmt b/bin/depotfmt
deleted file mode 120000
index 8390ec9c96..0000000000
--- a/bin/depotfmt
+++ /dev/null
@@ -1 +0,0 @@
-__dispatch.sh
\ No newline at end of file
diff --git a/bin/gerrit b/bin/gerrit
deleted file mode 120000
index 8390ec9c96..0000000000
--- a/bin/gerrit
+++ /dev/null
@@ -1 +0,0 @@
-__dispatch.sh
\ No newline at end of file
diff --git a/bin/gerrit-update b/bin/gerrit-update
deleted file mode 120000
index 8390ec9c96..0000000000
--- a/bin/gerrit-update
+++ /dev/null
@@ -1 +0,0 @@
-__dispatch.sh
\ No newline at end of file
diff --git a/bin/hash-password b/bin/hash-password
deleted file mode 120000
index 8390ec9c96..0000000000
--- a/bin/hash-password
+++ /dev/null
@@ -1 +0,0 @@
-__dispatch.sh
\ No newline at end of file
diff --git a/bin/mg b/bin/mg
deleted file mode 120000
index 8390ec9c96..0000000000
--- a/bin/mg
+++ /dev/null
@@ -1 +0,0 @@
-__dispatch.sh
\ No newline at end of file
diff --git a/bin/nint b/bin/nint
deleted file mode 120000
index 8390ec9c96..0000000000
--- a/bin/nint
+++ /dev/null
@@ -1 +0,0 @@
-__dispatch.sh
\ No newline at end of file
diff --git a/bin/niv b/bin/niv
deleted file mode 120000
index 8390ec9c96..0000000000
--- a/bin/niv
+++ /dev/null
@@ -1 +0,0 @@
-__dispatch.sh
\ No newline at end of file
diff --git a/bin/rebuild-system b/bin/rebuild-system
deleted file mode 120000
index 8390ec9c96..0000000000
--- a/bin/rebuild-system
+++ /dev/null
@@ -1 +0,0 @@
-__dispatch.sh
\ No newline at end of file
diff --git a/bin/rink b/bin/rink
deleted file mode 120000
index 8390ec9c96..0000000000
--- a/bin/rink
+++ /dev/null
@@ -1 +0,0 @@
-__dispatch.sh
\ No newline at end of file
diff --git a/bin/stern b/bin/stern
deleted file mode 120000
index 8390ec9c96..0000000000
--- a/bin/stern
+++ /dev/null
@@ -1 +0,0 @@
-__dispatch.sh
\ No newline at end of file
diff --git a/bin/tf-glesys b/bin/tf-glesys
deleted file mode 120000
index 8390ec9c96..0000000000
--- a/bin/tf-glesys
+++ /dev/null
@@ -1 +0,0 @@
-__dispatch.sh
\ No newline at end of file
diff --git a/bin/tf-keycloak b/bin/tf-keycloak
deleted file mode 120000
index 8390ec9c96..0000000000
--- a/bin/tf-keycloak
+++ /dev/null
@@ -1 +0,0 @@
-__dispatch.sh
\ No newline at end of file
diff --git a/tools/depot-deps.nix b/tools/depot-deps.nix
new file mode 100644
index 0000000000..c805746c89
--- /dev/null
+++ b/tools/depot-deps.nix
@@ -0,0 +1,34 @@
+# Shell derivation to invoke //nix/lazy-deps with the dependencies
+# that should be lazily made available in depot.
+{ pkgs, depot, ... }:
+
+let
+  deps = depot.nix.lazy-deps {
+    age-keygen.attr = "third_party.nixpkgs.age";
+    age.attr = "third_party.nixpkgs.age";
+    depotfmt.attr = "tools.depotfmt";
+    gerrit-update.attr = "tools.gerrit-update";
+    gerrit.attr = "tools.gerrit-cli";
+    hash-password.attr = "tools.hash-password";
+    mg.attr = "tools.magrathea";
+    nint.attr = "nix.nint";
+    niv.attr = "third_party.nixpkgs.niv";
+    rebuild-system.attr = "ops.nixos.rebuildSystem";
+    rink.attr = "third_party.nixpkgs.rink";
+
+    tf-glesys = {
+      attr = "ops.glesys.terraform";
+      cmd = "terraform";
+    };
+
+    tf-keycloak = {
+      attr = "ops.keycloak.terraform";
+      cmd = "terraform";
+    };
+  };
+in
+pkgs.mkShell {
+  buildInputs = [
+    deps
+  ];
+}