load modules from dir
This commit is contained in:
parent
81610d70f3
commit
660b1a1335
61
modules/default.nix
Normal file
61
modules/default.nix
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
{
|
||||||
|
self,
|
||||||
|
lib,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
mkNixosModule = name: [{ ${name} = import ./${name}; }];
|
||||||
|
mkBaseImport = name: [ self.nixosModules.${name} ];
|
||||||
|
|
||||||
|
# create a list of directory names from given folder
|
||||||
|
filterModules = dir: builtins.attrNames (lib.attrsets.filterAttrs (n: v: v == "directory") (builtins.readDir dir));
|
||||||
|
|
||||||
|
# create nixosModules imports from list
|
||||||
|
flakeNixosModulesList = modules: lib.attrsets.mergeAttrsList (builtins.concatMap mkNixosModule modules);
|
||||||
|
flakeNixosBaseImports = modules: lib.lists.flatten (builtins.concatMap mkBaseImport modules);
|
||||||
|
in
|
||||||
|
{
|
||||||
|
# Configuration common to all Linux systems
|
||||||
|
flake = {
|
||||||
|
nixosModules = rec {} //
|
||||||
|
(flakeNixosModulesList (filterModules ./.)) //
|
||||||
|
{
|
||||||
|
base.imports = [
|
||||||
|
self.nixosModules.home-manager
|
||||||
|
inputs.agenix.nixosModules.default
|
||||||
|
inputs.musnix.nixosModules.musnix
|
||||||
|
|
||||||
|
({
|
||||||
|
flake,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
unstable,
|
||||||
|
master,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
nixpkgs.overlays = (import ../overlays) ++ [
|
||||||
|
(prev: next: {
|
||||||
|
scan2paperless = inputs.scan2paperless.legacyPackages.${prev.system}.scan2paperless;
|
||||||
|
nixd = inputs.unstable.legacyPackages.${prev.system}.nixd;
|
||||||
|
|
||||||
|
factorio-headless = inputs.master.legacyPackages.${prev.system}.factorio-headless;
|
||||||
|
paperless-ngx = inputs.master.legacyPackages.${prev.system}.paperless-ngx;
|
||||||
|
waybar = inputs.master.legacyPackages.${prev.system}.waybar;
|
||||||
|
element-desktop = inputs.master.legacyPackages.${prev.system}.element-desktop;
|
||||||
|
|
||||||
|
adlist = inputs.adblock-unbound.packages.${prev.system};
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
|
nix.nixPath = [
|
||||||
|
"nixpkgs=${inputs.nixpkgs}"
|
||||||
|
"nixos-config=${../lib/compat/nixos}"
|
||||||
|
"home-manager=${inputs.home-manager}"
|
||||||
|
];
|
||||||
|
})
|
||||||
|
] ++ (flakeNixosBaseImports (filterModules ./.));
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in a new issue