tvl-depot/bin/__dispatch.sh
Luke Granger-Brown 1409b9c37b feat(gerrit-update): Add helper script for updating Gerrit schema
I've been running a script similar to this after doing Gerrit version
bumps to make sure the schema is up to date, but in the spirit of making
sure someone other that myself can do this task I'm formalising it into
the depot, where I should've put it in the first place.

Change-Id: I50a198e798e2ff26989b01e4bdd0571d85ab62aa
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2203
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
2020-11-29 11:50:58 +00:00

73 lines
1.4 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.age"
;;
age-keygen)
attr="third_party.age"
;;
aoc2019)
attr="fun.aoc2019.${1}"
;;
depot-build)
attr="tools.depot-build"
;;
git-bug)
attr="third_party.git-bug"
;;
gerrit)
attr="tools.gerrit-cli"
;;
gerrit-update)
attr="tools.gerrit-update"
;;
hash-password)
attr="tools.hash-password"
;;
kontemplate)
attr="kontemplate"
;;
meson)
attr="third_party.meson"
;;
ninja)
attr="third_party.ninja"
;;
perf-flamegraph)
attr="tools.perf-flamegraph"
;;
rebuild-system)
attr="ops.nixos.rebuild-system"
;;
rebuilder)
attr="users.tazjin.nixos.rebuilder"
;;
rink)
attr="third_party.rink"
;;
stern)
attr="third_party.stern"
;;
terraform)
attr="third_party.terraform-gcp"
;;
*)
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}" "${@}"