# 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 ); }; }