From 26301235fe3854ff5a5958309e4ed4e6e33a3608 Mon Sep 17 00:00:00 2001 From: Tyler Starr Date: Thu, 19 Dec 2024 11:03:57 -0800 Subject: [PATCH] refactor flake to allow for alternate users --- provision/flake.nix | 35 ++++++++--------------------- provision/hosts.json | 20 +++++++++++++++++ provision/hosts/bulwark/default.nix | 6 +++-- provision/hosts/kestrel/default.nix | 6 +++-- provision/hosts/osprey/default.nix | 6 +++-- provision/hosts/shivan/default.nix | 6 +++-- provision/hosts/torus/default.nix | 6 +++-- provision/hosts/wsl/default.nix | 6 +++-- 8 files changed, 53 insertions(+), 38 deletions(-) create mode 100644 provision/hosts.json diff --git a/provision/flake.nix b/provision/flake.nix index f21acd23..b6dcdcb1 100644 --- a/provision/flake.nix +++ b/provision/flake.nix @@ -15,34 +15,17 @@ outputs = inputs @ { self, nixpkgs, home-manager, jovian-nixos, agenix, nixos-wsl, ... }: let system = "x86_64-linux"; - user = "tstarr"; + hosts = builtins.fromJSON (builtins.readFile ./hosts.json); lib = nixpkgs.lib; in { - nixosConfigurations = { - kestrel = lib.nixosSystem (import ./hosts/kestrel { + nixosConfigurations = lib.mapAttrs (hostname: hostConfig: + lib.nixosSystem (import ./hosts/${hostname} { inherit lib; - inherit system user inputs agenix home-manager; - }); - shivan = lib.nixosSystem (import ./hosts/shivan { - inherit lib; - inherit system user inputs agenix home-manager; - }); - torus = lib.nixosSystem (import ./hosts/torus { - inherit lib; - inherit system user inputs agenix home-manager; - }); - bulwark = lib.nixosSystem (import ./hosts/bulwark { - inherit lib; - inherit system user inputs agenix home-manager jovian-nixos; - }); - wsl = lib.nixosSystem (import ./hosts/wsl { - inherit lib; - inherit system user inputs agenix home-manager nixos-wsl; - }); - osprey = lib.nixosSystem (import ./hosts/osprey { - inherit lib; - inherit system user inputs agenix home-manager; - }); - }; + inherit system inputs agenix home-manager jovian-nixos nixos-wsl; + specialArgs = { + user = hostConfig.user; + }; + }) + ) hosts; }; } diff --git a/provision/hosts.json b/provision/hosts.json new file mode 100644 index 00000000..a728deec --- /dev/null +++ b/provision/hosts.json @@ -0,0 +1,20 @@ +{ + "kestrel": { + "user": "tstarr" + }, + "shivan": { + "user": "tstarr" + }, + "torus": { + "user": "tstarr" + }, + "bulwark": { + "user": "tstarr" + }, + "osprey": { + "user": "tstarr" + }, + "wsl": { + "user": "user" + } +} diff --git a/provision/hosts/bulwark/default.nix b/provision/hosts/bulwark/default.nix index 83fb02bd..480dfcbe 100644 --- a/provision/hosts/bulwark/default.nix +++ b/provision/hosts/bulwark/default.nix @@ -1,5 +1,7 @@ -{ lib, system, user, inputs, agenix, home-manager, jovian-nixos, ... }: -{ +{ lib, specialArgs, system, inputs, agenix, home-manager, jovian-nixos, ... }: +let + user = specialArgs.user; +in { inherit system; specialArgs = { inherit user inputs home-manager jovian-nixos; }; modules = [ diff --git a/provision/hosts/kestrel/default.nix b/provision/hosts/kestrel/default.nix index c4d30e18..58fdff86 100644 --- a/provision/hosts/kestrel/default.nix +++ b/provision/hosts/kestrel/default.nix @@ -1,5 +1,7 @@ -{ lib, system, user, inputs, agenix, home-manager, ... }: -{ +{ lib, specialArgs, system, inputs, agenix, home-manager, ... }: +let + user = specialArgs.user; +in { inherit system; specialArgs = { inherit user inputs home-manager; }; modules = [ diff --git a/provision/hosts/osprey/default.nix b/provision/hosts/osprey/default.nix index 3b4f8302..25c7949b 100644 --- a/provision/hosts/osprey/default.nix +++ b/provision/hosts/osprey/default.nix @@ -1,5 +1,7 @@ -{ lib, system, user, inputs, agenix, home-manager, ... }: -{ +{ lib, specialArgs, system, inputs, agenix, home-manager, ... }: +let + user = specialArgs.user; +in { inherit system; specialArgs = { inherit user inputs home-manager; }; modules = [ diff --git a/provision/hosts/shivan/default.nix b/provision/hosts/shivan/default.nix index f4fcc139..11c9829a 100644 --- a/provision/hosts/shivan/default.nix +++ b/provision/hosts/shivan/default.nix @@ -1,5 +1,7 @@ -{ lib, system, user, inputs, agenix, home-manager, ... }: -{ +{ lib, specialArgs, system, inputs, agenix, home-manager, ... }: +let + user = specialArgs.user; +in { inherit system; specialArgs = { inherit user inputs home-manager; }; modules = [ diff --git a/provision/hosts/torus/default.nix b/provision/hosts/torus/default.nix index 237ab50e..82de3d14 100644 --- a/provision/hosts/torus/default.nix +++ b/provision/hosts/torus/default.nix @@ -1,5 +1,7 @@ -{ lib, system, user, inputs, agenix, home-manager, ... }: -{ +{ lib, specialArgs, system, inputs, agenix, home-manager, ... }: +let + user = specialArgs.user; +in { inherit system; specialArgs = { inherit user inputs home-manager; }; modules = [ diff --git a/provision/hosts/wsl/default.nix b/provision/hosts/wsl/default.nix index 3619e9fc..8143937f 100644 --- a/provision/hosts/wsl/default.nix +++ b/provision/hosts/wsl/default.nix @@ -1,5 +1,7 @@ -{ lib, system, user, inputs, agenix, home-manager, nixos-wsl, ... }: -{ +{ lib, specialArgs, system, inputs, agenix, home-manager, nixos-wsl, ... }: +let + user = specialArgs.user; +in { inherit system; specialArgs = { inherit user inputs nixos-wsl home-manager; }; modules = [