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 <eugene.zemtsov@gmail.com>
This commit is contained in:
Vincent Ambo 2022-05-02 12:40:50 +02:00 committed by tazjin
parent 0ce396bdab
commit e812807324
17 changed files with 36 additions and 83 deletions

5
.envrc
View file

@ -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

View file

@ -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}" "${@}"

View file

@ -1 +0,0 @@
__dispatch.sh

View file

@ -1 +0,0 @@
__dispatch.sh

View file

@ -1 +0,0 @@
__dispatch.sh

View file

@ -1 +0,0 @@
__dispatch.sh

View file

@ -1 +0,0 @@
__dispatch.sh

View file

@ -1 +0,0 @@
__dispatch.sh

1
bin/mg
View file

@ -1 +0,0 @@
__dispatch.sh

View file

@ -1 +0,0 @@
__dispatch.sh

View file

@ -1 +0,0 @@
__dispatch.sh

View file

@ -1 +0,0 @@
__dispatch.sh

View file

@ -1 +0,0 @@
__dispatch.sh

View file

@ -1 +0,0 @@
__dispatch.sh

View file

@ -1 +0,0 @@
__dispatch.sh

View file

@ -1 +0,0 @@
__dispatch.sh

34
tools/depot-deps.nix Normal file
View file

@ -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
];
}