62 lines
2 KiB
Nix
62 lines
2 KiB
Nix
|
{
|
||
|
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 ./.));
|
||
|
};
|
||
|
};
|
||
|
}
|