Unclutter flake
This commit is contained in:
42
lib/flake-helper.nix
Normal file
42
lib/flake-helper.nix
Normal file
@@ -0,0 +1,42 @@
|
||||
{ self, nixpkgs, nixos-exporter, solid-xmpp-alarm, ... }@inputs:
|
||||
|
||||
rec {
|
||||
generateNixosSystem = name: nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
({ ... }: {
|
||||
/*
|
||||
Make the contents of the flake availiable to modules.
|
||||
Useful for having the monitoring server scraping the
|
||||
target config from all other servers automatically.
|
||||
*/
|
||||
_module.args._nixfiles = self;
|
||||
})
|
||||
../configuration/common
|
||||
({ ... }: {
|
||||
nixpkgs.overlays = [
|
||||
(_: _: {
|
||||
inherit (nixos-exporter.packages."x86_64-linux")
|
||||
nixos-exporter;
|
||||
})
|
||||
];
|
||||
})
|
||||
solid-xmpp-alarm.nixosModules.solid-xmpp-alarm
|
||||
(../hosts + "/${name}/configuration.nix")
|
||||
];
|
||||
};
|
||||
|
||||
generateColmenaHost = name: hostSystem: {
|
||||
deployment = {
|
||||
targetHost = "${name}.net.clerie.de";
|
||||
targetUser = null;
|
||||
};
|
||||
nixpkgs.system = hostSystem.config.nixpkgs.system;
|
||||
imports = hostSystem._module.args.modules;
|
||||
deployment.allowLocalDeployment = builtins.any (n: n == name) [ "schule" "osmium" ];
|
||||
};
|
||||
|
||||
mapToColmenaHosts = hosts: builtins.mapAttrs (generateColmenaHost) hosts;
|
||||
|
||||
buildHosts = hosts: builtins.mapAttrs (name: host: host.config.system.build.toplevel) hosts;
|
||||
}
|
Reference in New Issue
Block a user