let target-version = "21.05"; in { description = "Fudo Host Configuration"; inputs = { nixpkgs.url = "nixpkgs/nixos-${target-version}"; home-manager.url = "github:nix-community/home-manager/release-${target-version}"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; }; outputs = { nixpkgs, home-manager, ... }: let lib = nixpkgs.lib; is-nix-file = filename: type: (builtins.match ".+.nix$" filename) != null; is-regular-file = filename: type: type == "regular" || type == "link"; hostname-from-file = filename: builtins.replaceStrings [ ".nix" ] [ "" ] filename; hosts = map hostname-from-file (lib.attrNames (lib.filterAttrs is-nix-file (lib.filterAttrs is-regular-file (builtins.readDir ./config/hosts)))); pkgs = import nixpkgs { }; in { nixConfigurations = lib.mapAttrs (hostname: hostOpts: lib.nixosSystem { system = hostOpts.architecture; modules = [ (import ./initialize.nix { hostname = hostname; home-manager-package = home-manager; pkgs = pkgs; include-secrets = true; }) ]; }) hosts; }; }