From e81280732444f492894b7b47ce38a2b3293a31d1 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Mon, 2 May 2022 12:40:50 +0200 Subject: refactor: Replace //bin with //tools/depot-deps 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 --- .envrc | 5 ++-- bin/__dispatch.sh | 66 ---------------------------------------------------- bin/age | 1 - bin/age-keygen | 1 - bin/depotfmt | 1 - bin/gerrit | 1 - bin/gerrit-update | 1 - bin/hash-password | 1 - bin/mg | 1 - bin/nint | 1 - bin/niv | 1 - bin/rebuild-system | 1 - bin/rink | 1 - bin/stern | 1 - bin/tf-glesys | 1 - bin/tf-keycloak | 1 - tools/depot-deps.nix | 34 +++++++++++++++++++++++++++ 17 files changed, 36 insertions(+), 83 deletions(-) delete mode 100755 bin/__dispatch.sh delete mode 120000 bin/age delete mode 120000 bin/age-keygen delete mode 120000 bin/depotfmt delete mode 120000 bin/gerrit delete mode 120000 bin/gerrit-update delete mode 120000 bin/hash-password delete mode 120000 bin/mg delete mode 120000 bin/nint delete mode 120000 bin/niv delete mode 120000 bin/rebuild-system delete mode 120000 bin/rink delete mode 120000 bin/stern delete mode 120000 bin/tf-glesys delete mode 120000 bin/tf-keycloak create mode 100644 tools/depot-deps.nix 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 + ]; +} -- cgit 1.4.1