{ inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-20.09"; inputs.nixpkgs_unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; outputs = { self, nixpkgs, nixpkgs_unstable }: { nixosConfigurations = let mkConfig = { hostName, module ? (./. + "/machines/${hostName}.nix") }: { name = hostName; value = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ module ({config, pkgs, ...}: { # Let 'nixos-version --json' know about the Git revision # of this flake. system.configurationRevision = if self ? rev then self.rev else "DIRTY"; # Add unstable packages. nixpkgs.overlays = [ (final: prev: { unstable = nixpkgs_unstable.legacyPackages."x86_64-linux"; }) ]; }) ]; }; }; myMachines = [ { hostName = "pincer"; module = ./machines/x1-pincer.nix; } { hostName = "dragon"; } ]; in builtins.listToAttrs (map mkConfig myMachines); }; }