refactor(ops/nixos): Move my NixOS configurations to //users/tazjin
NixOS modules move one level up because it's unlikely that //ops/nixos will contain actual systems at this point (they're user-specific). This is the first users folder, so it is also added to the root readTree invocation for the repository. Change-Id: I546c701145fa204b7ba7518a8a56a783588629e0 Reviewed-on: https://cl.tvl.fyi/c/depot/+/244 Reviewed-by: tazjin <mail@tazj.in>
This commit is contained in:
parent
9658e96a87
commit
268729083e
24 changed files with 51 additions and 124 deletions
46
users/tazjin/nixos/default.nix
Normal file
46
users/tazjin/nixos/default.nix
Normal file
|
@ -0,0 +1,46 @@
|
|||
# TODO(tazjin): Generalise this and move to //ops/nixos
|
||||
{ depot, lib, ... }:
|
||||
|
||||
let
|
||||
inherit (builtins) foldl';
|
||||
|
||||
systemFor = configs: (depot.third_party.nixos {
|
||||
configuration = lib.fix(config:
|
||||
foldl' lib.recursiveUpdate {} (map (c: c config) configs)
|
||||
);
|
||||
}).system;
|
||||
|
||||
caseFor = hostname: ''
|
||||
${hostname})
|
||||
echo "Rebuilding NixOS for //users/tazjin/nixos/${hostname}"
|
||||
system=$(nix-build -E '(import <depot> {}).users.tazjin.nixos.${hostname}System' --no-out-link)
|
||||
;;
|
||||
'';
|
||||
|
||||
rebuilder = depot.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
|
||||
${caseFor "nugget"}
|
||||
${caseFor "camden"}
|
||||
${caseFor "frog"}
|
||||
*)
|
||||
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 rebuilder;
|
||||
|
||||
nuggetSystem = systemFor [ depot.users.tazjin.nixos.nugget ];
|
||||
camdenSystem = systemFor [ depot.users.tazjin.nixos.camden ];
|
||||
frogSystem = systemFor [ depot.users.tazjin.nixos.frog ];
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue