mirror of
https://github.com/donovanglover/nix-config.git
synced 2025-06-24 19:51:30 +02:00
feat(nix): Use single expression for module/overlay outputs
This makes the code much DRYer overall.
This commit is contained in:
parent
e84d3bbf02
commit
c421fe245f
26
flake.nix
26
flake.nix
@ -39,18 +39,22 @@
|
|||||||
|
|
||||||
packages."x86_64-linux" = with nixpkgs.legacyPackages."x86_64-linux";
|
packages."x86_64-linux" = with nixpkgs.legacyPackages."x86_64-linux";
|
||||||
builtins.mapAttrs (name: value: callPackage ./packages/${name}) (builtins.readDir ./packages);
|
builtins.mapAttrs (name: value: callPackage ./packages/${name}) (builtins.readDir ./packages);
|
||||||
|
} //
|
||||||
overlays = builtins.mapAttrs (name: value: import ./overlays/${name}) (builtins.readDir ./overlays);
|
|
||||||
|
|
||||||
nixosModules =
|
|
||||||
(builtins.listToAttrs
|
(builtins.listToAttrs
|
||||||
(builtins.map
|
(builtins.map
|
||||||
(string: {
|
(attr: {
|
||||||
name = builtins.replaceStrings [".nix"] [""] string;
|
name = attr;
|
||||||
value = import ./modules/${string}; })
|
value = let
|
||||||
|
directory = builtins.replaceStrings
|
||||||
|
["nixosModules" "homeManagerModules"]
|
||||||
|
["modules" "home"]
|
||||||
|
attr;
|
||||||
|
in (builtins.listToAttrs
|
||||||
|
(builtins.map
|
||||||
|
(filename: {
|
||||||
|
name = builtins.replaceStrings [".nix"] [""] filename;
|
||||||
|
value = import ./${directory}/${filename}; })
|
||||||
(builtins.attrNames
|
(builtins.attrNames
|
||||||
(builtins.readDir ./modules))));
|
(builtins.readDir ./${directory})))); })
|
||||||
|
["overlays" "nixosModules" "homeManagerModules"]));
|
||||||
homeManagerModules = builtins.mapAttrs (name: value: import ./home/${name}) (builtins.readDir ./home);
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user