forked from pub-solar/os
lib: init generators section
This commit is contained in:
parent
378107fd03
commit
e97e916521
46
lib/generators.nix
Normal file
46
lib/generators.nix
Normal file
|
@ -0,0 +1,46 @@
|
|||
{ lib }:
|
||||
{
|
||||
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 =
|
||||
/**
|
||||
Synopsis: mkNodes _nixosConfigurations_
|
||||
|
||||
Generate the `nodes` attribute expected by deploy-rs
|
||||
where _nixosConfigurations_ are `nodes`.
|
||||
**/
|
||||
|
||||
deploy: lib.mapAttrs (_: config: {
|
||||
hostname = config.config.networking.hostName;
|
||||
|
||||
profiles.system = {
|
||||
user = "root";
|
||||
path = deploy.lib.x86_64-linux.activate.nixos config;
|
||||
};
|
||||
});
|
||||
|
||||
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;
|
||||
};
|
||||
}
|
Loading…
Reference in a new issue