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:
parent
0ce396bdab
commit
e812807324
17 changed files with 36 additions and 83 deletions
5
.envrc
5
.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
|
||||
|
|
|
@ -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}" "${@}"
|
1
bin/age
1
bin/age
|
@ -1 +0,0 @@
|
|||
__dispatch.sh
|
|
@ -1 +0,0 @@
|
|||
__dispatch.sh
|
|
@ -1 +0,0 @@
|
|||
__dispatch.sh
|
|
@ -1 +0,0 @@
|
|||
__dispatch.sh
|
|
@ -1 +0,0 @@
|
|||
__dispatch.sh
|
|
@ -1 +0,0 @@
|
|||
__dispatch.sh
|
1
bin/mg
1
bin/mg
|
@ -1 +0,0 @@
|
|||
__dispatch.sh
|
1
bin/nint
1
bin/nint
|
@ -1 +0,0 @@
|
|||
__dispatch.sh
|
1
bin/niv
1
bin/niv
|
@ -1 +0,0 @@
|
|||
__dispatch.sh
|
|
@ -1 +0,0 @@
|
|||
__dispatch.sh
|
1
bin/rink
1
bin/rink
|
@ -1 +0,0 @@
|
|||
__dispatch.sh
|
|
@ -1 +0,0 @@
|
|||
__dispatch.sh
|
|
@ -1 +0,0 @@
|
|||
__dispatch.sh
|
|
@ -1 +0,0 @@
|
|||
__dispatch.sh
|
34
tools/depot-deps.nix
Normal file
34
tools/depot-deps.nix
Normal 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
|
||||
];
|
||||
}
|
Loading…
Reference in a new issue