2024-07-08 15:07:24 +05:00
|
|
|
{
|
|
|
|
lib,
|
2024-07-18 15:49:05 +05:00
|
|
|
bonLib,
|
2024-07-08 15:07:24 +05:00
|
|
|
self,
|
2024-07-18 15:49:05 +05:00
|
|
|
check ? true,
|
2024-07-08 15:07:24 +05:00
|
|
|
...
|
2024-07-18 15:49:05 +05:00
|
|
|
}: let
|
|
|
|
moduleList = [
|
2024-07-08 15:07:24 +05:00
|
|
|
./misc/bonfire/default.nix
|
|
|
|
./services/papermc.nix
|
|
|
|
./services/qbittorrent-nox.nix
|
|
|
|
./services/spoofdpi.nix
|
|
|
|
];
|
2024-06-20 00:16:28 +05:00
|
|
|
|
2024-07-08 15:07:24 +05:00
|
|
|
configModule = {
|
|
|
|
config,
|
|
|
|
pkgs,
|
|
|
|
...
|
|
|
|
}: {
|
|
|
|
config = {
|
2024-07-18 15:49:05 +05:00
|
|
|
# module type checking
|
2024-07-08 15:07:24 +05:00
|
|
|
_module.check = check;
|
2024-07-18 15:49:05 +05:00
|
|
|
# extra arguments
|
|
|
|
_module.args = {
|
|
|
|
bonPkgs = self.packages.${pkgs.system};
|
|
|
|
};
|
2024-06-20 00:16:28 +05:00
|
|
|
};
|
2024-07-08 15:07:24 +05:00
|
|
|
};
|
2024-07-18 15:49:05 +05:00
|
|
|
|
|
|
|
importedModules =
|
|
|
|
map (path: {...}: {
|
|
|
|
# imports provide path for each module needed for documentation
|
|
|
|
# inject module configuration
|
|
|
|
imports = [path configModule];
|
|
|
|
})
|
|
|
|
moduleList;
|
|
|
|
|
|
|
|
importedModuleNames = map (path: bonLib.nameFromPath path) moduleList;
|
|
|
|
|
|
|
|
bonfireModule = {
|
|
|
|
config,
|
|
|
|
pkgs,
|
|
|
|
...
|
|
|
|
}: {
|
|
|
|
# collect all modules
|
|
|
|
imports = importedModules;
|
|
|
|
};
|
|
|
|
in
|
|
|
|
lib.listToAttrs (
|
|
|
|
lib.zipListsWith (name: value: {inherit name value;}) importedModuleNames importedModules
|
|
|
|
)
|
|
|
|
// {
|
|
|
|
bonfire = bonfireModule;
|
|
|
|
default = bonfireModule;
|
|
|
|
}
|