diff options
author | William Carroll <wpcarro@gmail.com> | 2021-12-30T19·25-0400 |
---|---|---|
committer | clbot <clbot@tvl.fyi> | 2022-01-08T05·31+0000 |
commit | 6500fb551f5c5bf7b5c784fa6aaf45da12b43bc1 (patch) | |
tree | 1258d395cf583e1c203dbd14ba53696d708f9c26 | |
parent | d24eef0735dfcec37c516cb4a138172aba2a7497 (diff) |
feat(wpcarro): Define deploy-diogenes helper r/3535
TL;DR: - Mimmick depot's bin -> __dispatch.sh for personal utils - Define deploy-diogenes to more tighten my feedback loop Change-Id: I2b12a1c32a955574f5be5d4f38025bd97e9c7b77 Reviewed-on: https://cl.tvl.fyi/c/depot/+/4751 Tested-by: BuildkiteCI Reviewed-by: wpcarro <wpcarro@gmail.com> Autosubmit: wpcarro <wpcarro@gmail.com>
-rw-r--r-- | users/wpcarro/.envrc | 3 | ||||
-rwxr-xr-x | users/wpcarro/bin/__dispatch.sh | 24 | ||||
l--------- | users/wpcarro/bin/deploy-diogenes | 1 | ||||
-rw-r--r-- | users/wpcarro/nixos/default.nix | 16 |
4 files changed, 42 insertions, 2 deletions
diff --git a/users/wpcarro/.envrc b/users/wpcarro/.envrc index 196758a932f0..b23a41fbd7a4 100644 --- a/users/wpcarro/.envrc +++ b/users/wpcarro/.envrc @@ -1,2 +1,3 @@ source_up -export WPCARRO="$REPO_ROOT/users/wpcarro" +export PATH="${PWD}/bin:${PATH}" +export WPCARRO="${REPO_ROOT}/users/wpcarro" diff --git a/users/wpcarro/bin/__dispatch.sh b/users/wpcarro/bin/__dispatch.sh new file mode 100755 index 000000000000..b7671562eb2d --- /dev/null +++ b/users/wpcarro/bin/__dispatch.sh @@ -0,0 +1,24 @@ +#!/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 + +TARGET_TOOL=$(basename "$0") + +case "${TARGET_TOOL}" in + deploy-diogenes) + attr="users.wpcarro.nixos.deploy-diogenes" + ;; + *) + 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/users/wpcarro/bin/deploy-diogenes b/users/wpcarro/bin/deploy-diogenes new file mode 120000 index 000000000000..8390ec9c9652 --- /dev/null +++ b/users/wpcarro/bin/deploy-diogenes @@ -0,0 +1 @@ +__dispatch.sh \ No newline at end of file diff --git a/users/wpcarro/nixos/default.nix b/users/wpcarro/nixos/default.nix index b1a878c95a07..e7ae5490b9b6 100644 --- a/users/wpcarro/nixos/default.nix +++ b/users/wpcarro/nixos/default.nix @@ -1,8 +1,22 @@ -{ depot, ... }: +{ depot, pkgs, ... }: let systemFor = sys: (depot.ops.nixos.nixosFor sys).system; in { marcusSystem = systemFor depot.users.wpcarro.nixos.marcus; + deploy-diogenes = pkgs.writeShellScriptBin "deploy-diogenes" '' + set -euo pipefail + readonly TF_STATE_DIR=/depot/users/wpcarro/terraform + rm -f $TF_STATE_DIR/*.json + readonly STORE_PATH="$(nix-build /depot -A users.wpcarro.nixos.diogenes)" + cp $STORE_PATH $TF_STATE_DIR + + function cleanup() { + rm -f "$TF_STATE_DIR/$(basename $STORE_PATH)" + } + + trap cleanup EXIT + ${pkgs.terraform}/bin/terraform -chdir="$TF_STATE_DIR" apply + ''; meta.targets = [ "marcusSystem" ]; } |