49 lines
923 B
Nix
49 lines
923 B
Nix
{
|
|
hostname,
|
|
inputs,
|
|
users ? [ ],
|
|
modules ? [ ],
|
|
overlays ? [ ],
|
|
}:
|
|
let
|
|
mkHome = import ./mkHome.nix;
|
|
usersHomes = builtins.listToAttrs (
|
|
map (username: {
|
|
name = username;
|
|
value = mkHome {
|
|
inherit username hostname;
|
|
};
|
|
}) users
|
|
);
|
|
usersSystemsConfigs = map (username: ../users/${username}/system.nix) users;
|
|
in
|
|
{
|
|
deployment = {
|
|
allowLocalDeployment = true;
|
|
tags = [ hostname ];
|
|
};
|
|
imports = [
|
|
{
|
|
_module.args = {
|
|
inherit inputs;
|
|
inherit hostname;
|
|
};
|
|
nixpkgs.overlays = overlays;
|
|
}
|
|
../hosts/${hostname}
|
|
../hosts/common
|
|
inputs.home-manager.nixosModules.home-manager
|
|
{
|
|
home-manager = {
|
|
useGlobalPkgs = true;
|
|
extraSpecialArgs = {
|
|
inherit inputs;
|
|
inherit hostname;
|
|
};
|
|
users = usersHomes;
|
|
};
|
|
}
|
|
]
|
|
++ modules
|
|
++ usersSystemsConfigs;
|
|
}
|