diff --git a/outputs.nix b/outputs.nix index b151505..ad24442 100644 --- a/outputs.nix +++ b/outputs.nix @@ -14,39 +14,43 @@ self = { versionInfoFixup = import ./pkgs/overlays/version-info-fixup.nix { inherit inputs; }; }; nixosConfigurations = let - dir = builtins.readDir ./hosts; # list nix file paths in ./hosts to attributes in nixosConfigurations - filePaths = lib.mapAttrsToList (name: _: name) (lib.filterAttrs (name: type: + filePaths = lib.pipe ./hosts [ + builtins.readDir + ( lib.filterAttrs (name: type: # filter out non-nix files - type == "regular" + type == "regular" # filter out files that don't end in .nix && lib.hasSuffix ".nix" name # filter out files that start with . - && ! lib.hasPrefix "." name - ) dir - ); + && !lib.hasPrefix "." name + )) + (lib.mapAttrsToList (name: _: name)) + ]; nixosSystem = import "${inputs.nixpkgs}/nixos/lib/eval-config.nix"; in # mapped list of nix file paths to attrSet with initialized NixOS configurations, # whose names are derived from file names - builtins.listToAttrs (builtins.map (name: { - name = builtins.substring 0 (builtins.stringLength name - 4) name; - value = nixosSystem { - inherit lib; - modules = [ - ./hosts/${name} - { - config.nixpkgs.overlays = [ - ( import ./pkgs/overlays/selfExpr.nix { nixpkgsPath = "${builtins.toString ./.}/pkgs/top-level/impure.nix"; } ) - ( import "${inputs.nixpkgs}/pkgs/top-level/by-name-overlay.nix" "${builtins.toString ./.}/pkgs/by-name" ) - self.overlays.versionInfoFixup - ]; - } - ]; - specialArgs = { inherit self inputs; }; - }; - }) filePaths - ); + lib.pipe filePaths [ + (builtins.map (name: { + name = builtins.substring 0 (builtins.stringLength name - 4) name; + value = nixosSystem { + inherit lib; + modules = [ + ./hosts/${name} + { + config.nixpkgs.overlays = [ + ( import ./pkgs/overlays/selfExpr.nix { nixpkgsPath = "${builtins.toString ./.}/pkgs/top-level/impure.nix"; } ) + ( import "${inputs.nixpkgs}/pkgs/top-level/by-name-overlay.nix" "${builtins.toString ./.}/pkgs/by-name" ) + self.overlays.versionInfoFixup + ]; + } + ]; + specialArgs = { inherit self inputs; }; + }; + })) + builtins.listToAttrs + ]; }; in self