From 6500fb551f5c5bf7b5c784fa6aaf45da12b43bc1 Mon Sep 17 00:00:00 2001 From: William Carroll Date: Thu, 30 Dec 2021 15:25:03 -0400 Subject: feat(wpcarro): Define deploy-diogenes helper 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 Autosubmit: wpcarro --- users/wpcarro/.envrc | 3 ++- users/wpcarro/bin/__dispatch.sh | 24 ++++++++++++++++++++++++ users/wpcarro/bin/deploy-diogenes | 1 + users/wpcarro/nixos/default.nix | 16 +++++++++++++++- 4 files changed, 42 insertions(+), 2 deletions(-) create mode 100755 users/wpcarro/bin/__dispatch.sh create mode 120000 users/wpcarro/bin/deploy-diogenes 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" ]; } -- cgit 1.4.1