45 lines
1.2 KiB
Nix
45 lines
1.2 KiB
Nix
# copied and adopted from maralorns config
|
|
# This automatically searches for nixos configs in ./machines/${name}/configuration.nix
|
|
# and exposes them as outputs.nixosConfigurations.${name}
|
|
{
|
|
withSystem,
|
|
lib,
|
|
inputs,
|
|
...
|
|
}:
|
|
{
|
|
flake = {
|
|
nixosConfigurations = withSystem "x86_64-linux" (
|
|
{ pkgs, ... }:
|
|
let
|
|
machines = builtins.attrNames (builtins.readDir ./machines);
|
|
makeSystem =
|
|
name:
|
|
let
|
|
importedConfig = import (./. + "/machines/${name}/configuration.nix");
|
|
systemConfig =
|
|
if lib.isFunction importedConfig then
|
|
x:
|
|
importedConfig (
|
|
x
|
|
// {
|
|
flake-inputs = inputs;
|
|
inherit pkgs;
|
|
}
|
|
)
|
|
else
|
|
importedConfig;
|
|
in
|
|
pkgs.nixos {
|
|
imports = [
|
|
systemConfig
|
|
inputs.sops-nix.nixosModules.sops
|
|
inputs.impermanence.nixosModules.impermanence
|
|
inputs.home-manager.nixosModules.home-manager
|
|
];
|
|
};
|
|
in
|
|
lib.genAttrs machines makeSystem
|
|
);
|
|
};
|
|
}
|