flake: Refactor nixosModules collection

We will want to reuse the prep method for overlays so let's move it higher and simplify it a bit.
This commit is contained in:
Jan Tojnar 2020-06-02 01:14:33 +02:00
parent f3e52ede3c
commit 0b14dbbc2d
No known key found for this signature in database
GPG key ID: 7FAB2A15F7A607A4

View file

@ -10,6 +10,18 @@
inherit (nixpkgs.lib) removeSuffix; inherit (nixpkgs.lib) removeSuffix;
system = "x86_64-linux"; system = "x86_64-linux";
# Generate an attribute set by mapping a function over a list of values.
genAttrs' = values: f: listToAttrs (map f values);
# Convert a list to file paths to attribute set
# that has the filenames stripped of nix extension as keys
# and imported content of the file as value.
pathsToImportedAttrs = paths:
genAttrs' paths (path: {
name = removeSuffix ".nix" (baseNameOf path);
value = import path;
});
pkgs = import nixpkgs { pkgs = import nixpkgs {
inherit system; inherit system;
overlays = self.overlays; overlays = self.overlays;
@ -33,18 +45,13 @@
}; };
nixosModules = let nixosModules = let
prep = map (path: {
name = removeSuffix ".nix" (baseNameOf path);
value = import path;
});
# modules # modules
moduleList = import ./modules/list.nix; moduleList = import ./modules/list.nix;
modulesAttrs = listToAttrs (prep moduleList); modulesAttrs = pathsToImportedAttrs moduleList;
# profiles # profiles
profilesList = import ./profiles/list.nix; profilesList = import ./profiles/list.nix;
profilesAttrs = { profiles = listToAttrs (prep profilesList); }; profilesAttrs = { profiles = pathsToImportedAttrs profilesList; };
in modulesAttrs // profilesAttrs; in modulesAttrs // profilesAttrs;
}; };