From 85ee07457c5fe404f38b26e01712831a6c1e4f1e Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Sat, 4 Jan 2020 22:48:52 +0000 Subject: feat(ops/nixos): Add 'rebuilder' helper script This script rebuilds & activates system configuration based on the hostname. Currently since there is only one host this isn't particularly interesting. --- ops/nixos/default.nix | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) (limited to 'ops/nixos/default.nix') diff --git a/ops/nixos/default.nix b/ops/nixos/default.nix index 02a42425fdc6..d4aa9705d6a7 100644 --- a/ops/nixos/default.nix +++ b/ops/nixos/default.nix @@ -1,3 +1,4 @@ +# TODO(tazjin): rename 'pkgs' -> 'depot'? { pkgs, ... }: let @@ -9,7 +10,30 @@ let foldl' lib.recursiveUpdate {} (map (c: c config) configs) ); }).system; -in { - # TODO(tazjin): rename 'pkgs' -> 'depot'? + nuggetSystem = systemFor [ pkgs.ops.nixos.nugget ]; + + rebuilder = pkgs.third_party.writeShellScriptBin "rebuilder" '' + set -ue + if [[ $EUID -ne 0 ]]; then + echo "Oh no! Only root is allowed to rebuild the system!" >&2 + exit 1 + fi + + case $HOSTNAME in + nugget) + echo "Rebuilding NixOS for //ops/nixos/nugget" + system=$(nix-build -E '(import {}).ops.nixos.nuggetSystem' --no-out-link) + ;; + *) + echo "$HOSTNAME is not a known NixOS host!" >&2 + exit 1 + ;; + esac + + nix-env -p /nix/var/nix/profiles/system --set $system + $system/bin/switch-to-configuration switch + ''; +in { + inherit nuggetSystem rebuilder; } -- cgit 1.4.1