b8f7cdbe63
move both to be setup in template only set home-manager options if they exist
50 lines
1.2 KiB
Nix
50 lines
1.2 KiB
Nix
{ lib, deploy }:
|
|
{
|
|
mkHomeConfigurations = nixosConfigurations:
|
|
with lib;
|
|
let
|
|
mkHomes = host: config:
|
|
mapAttrs' (user: v: nameValuePair "${user}@${host}" v.home)
|
|
config.config.system.build.homes;
|
|
|
|
hmConfigs = mapAttrs mkHomes nixosConfigurations;
|
|
|
|
in
|
|
foldl recursiveUpdate { } (attrValues hmConfigs);
|
|
|
|
mkDeployNodes = hosts: extraConfig:
|
|
/**
|
|
Synopsis: mkNodes _nixosConfigurations_
|
|
|
|
Generate the `nodes` attribute expected by deploy-rs
|
|
where _nixosConfigurations_ are `nodes`.
|
|
**/
|
|
|
|
lib.mapAttrs
|
|
(_: config: lib.recursiveUpdate
|
|
{
|
|
hostname = config.config.networking.hostName;
|
|
|
|
profiles.system = {
|
|
user = "root";
|
|
path = deploy.lib.x86_64-linux.activate.nixos config;
|
|
};
|
|
}
|
|
extraConfig)
|
|
hosts;
|
|
|
|
mkSuites = { suites, profiles }:
|
|
let
|
|
profileSet = lib.genAttrs' profiles (path: {
|
|
name = baseNameOf path;
|
|
value = lib.mkProfileAttrs (toString path);
|
|
});
|
|
|
|
definedSuites = suites profileSet;
|
|
|
|
allProfiles = lib.collectProfiles profileSet;
|
|
in
|
|
lib.mapAttrs (_: v: lib.profileMap v) definedSuites // {
|
|
inherit allProfiles;
|
|
};
|
|
}
|