d018484376
Right now the only included formatter is gofmt, but we will extend this over time. The version of treefmt is bumped to 0.3.0 (which supports custom config files) until this lands in nixpkgs. Change-Id: I1e1aafd05ec7427c616f90c90490c528ecb2615c Reviewed-on: https://cl.tvl.fyi/c/depot/+/4399 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
73 lines
1.5 KiB
Bash
Executable file
73 lines
1.5 KiB
Bash
Executable file
#!/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"
|
|
;;
|
|
depot-build)
|
|
attr="tools.depot-build"
|
|
;;
|
|
depot-nixpkgs-update)
|
|
attr="tools.depot-nixpkgs-update"
|
|
;;
|
|
gerrit)
|
|
attr="tools.gerrit-cli"
|
|
;;
|
|
gerrit-update)
|
|
attr="tools.gerrit-update"
|
|
;;
|
|
hash-password)
|
|
attr="tools.hash-password"
|
|
;;
|
|
kontemplate)
|
|
attr="ops.kontemplate"
|
|
;;
|
|
meson)
|
|
attr="third_party.nixpkgs.meson"
|
|
;;
|
|
mg)
|
|
attr="tools.magrathea"
|
|
;;
|
|
ninja)
|
|
attr="third_party.nixpkgs.ninja"
|
|
;;
|
|
nint)
|
|
attr="nix.nint"
|
|
;;
|
|
perf-flamegraph)
|
|
attr="tools.perf-flamegraph"
|
|
;;
|
|
rebuild-system)
|
|
attr="ops.nixos.rebuild-system"
|
|
;;
|
|
rink)
|
|
attr="third_party.nixpkgs.rink"
|
|
;;
|
|
stern)
|
|
attr="third_party.nixpkgs.stern"
|
|
;;
|
|
depotfmt)
|
|
attr="tools.depotfmt"
|
|
;;
|
|
*)
|
|
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}" "${@}"
|