nixos/lib/host.nix

51 lines
980 B
Nix
Raw Normal View History

2023-02-14 20:20:01 +00:00
{ pkgs
, nixpkgs
, unstablePkgs
2023-02-14 20:20:01 +00:00
, home-manager
, system
, mkHomeRole
, mkSysRole
, mkUser
, ...
}:
2021-10-06 18:17:06 +01:00
{
2022-10-13 17:08:08 +01:00
mkHost = { name, users, roles ? [ ], imports ? [ ] }:
let
2023-02-11 02:29:48 +00:00
users_mod = (map
(u:
mkUser {
2023-02-11 02:29:48 +00:00
name = u.user;
roles = u.roles;
})
users);
roles_mod = (map (r: mkSysRole r) roles);
2022-10-13 17:08:08 +01:00
add_imports = imports;
2023-02-11 02:29:48 +00:00
in
nixpkgs.lib.nixosSystem {
inherit system pkgs;
2022-10-13 17:08:08 +01:00
modules = [
{
2023-05-28 21:45:49 +01:00
imports = users_mod ++
roles_mod ++
add_imports ++ [
(mkSysRole "common")
(mkSysRole "acme")
2023-05-28 21:45:49 +01:00
(mkUser { name = "root"; roles = [ ]; })
];
2023-02-14 20:20:01 +00:00
2022-10-13 17:08:08 +01:00
home-manager = {
extraSpecialArgs.unstablePkgs = unstablePkgs;
2022-10-13 17:08:08 +01:00
useGlobalPkgs = true;
};
2023-02-14 20:20:01 +00:00
2023-05-27 23:16:46 +01:00
system.stateVersion = "23.05";
2022-10-13 17:08:08 +01:00
}
home-manager.nixosModules.home-manager
../hosts/${name}/default.nix
];
};
2021-10-06 18:17:06 +01:00
}