about summary refs log tree commit diff
path: root/bin
diff options
context:
space:
mode:
authorGriffin Smith <grfn@gws.fyi>2020-07-03T04·26-0400
committerglittershark <grfn@gws.fyi>2020-07-06T15·16+0000
commita73714a93c2d5e1ce2f9e52f23eaf3019a5d46ed (patch)
tree9162ebd1a732ddcd743794eba602f88cd6ba4e27 /bin
parent8bcdff263c31892161c5c40eb848f02b88c18624 (diff)
feat(ops/nixos): Add generic rebuild-system script r/1221
This adds a first crack at one idea for a generic, non-user-specific
rebuild-system script to ops.nixos.rebuild-system. The idea here is that
we enumerate all the nixos systems stored in the monorepo (similarly to
what we do for ci-builds right now) then search through them by hostname
to find the one matching the hostname of the current system, which is an
attempt at a more generic version of tazjin's rebuilder script which
does the same thing but with an explicit case block.

As a caveat, it feels like there's a slight possibility that this way of
finding systems is going to get slow to evaluate - on my system it feels
fine but if it grows out of hand it's probably feasible to just bake
this into the built script as a dynamically generated case statement.

Change-Id: I2e4c5401913b6f4d936ab48ba2f95f96e0e78eb4
Reviewed-on: https://cl.tvl.fyi/c/depot/+/894
Tested-by: BuildkiteCI
Reviewed-by: lukegb <lukegb@tvl.fyi>
Diffstat (limited to 'bin')
-rwxr-xr-xbin/__dispatch.sh3
l---------bin/rebuild-system1
2 files changed, 4 insertions, 0 deletions
diff --git a/bin/__dispatch.sh b/bin/__dispatch.sh
index e8d54fec39..fa954ae29c 100755
--- a/bin/__dispatch.sh
+++ b/bin/__dispatch.sh
@@ -52,6 +52,9 @@ case "${TARGET_TOOL}" in
   hash-password)
     attr="tools.hash-password"
     ;;
+  rebuild-system)
+    attr="ops.nixos.rebuild-system"
+    ;;
   *)
     echo "The tool '${TARGET_TOOL}' is currently not installed in this repository."
     exit 1
diff --git a/bin/rebuild-system b/bin/rebuild-system
new file mode 120000
index 0000000000..8390ec9c96
--- /dev/null
+++ b/bin/rebuild-system
@@ -0,0 +1 @@
+__dispatch.sh
\ No newline at end of file