-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathmodules.nix
45 lines (43 loc) · 1.02 KB
/
modules.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
{ utils }:
{
lib,
runCommand,
nixosOptionsDoc,
...
}:
let
mkModuleDocs =
module:
(nixosOptionsDoc {
inherit
(lib.evalModules {
modules = [
# ignores the configs part in modules
# which is good since we only want the options
{
config._module.check = false;
options._module.args = lib.mkOption { visible = false; };
}
module
];
specialArgs = {
inherit utils;
};
})
options
;
}).optionsCommonMark;
modules = {
dnsConfig = import ../modules/dnsConfig.nix;
extraConfig = import ../modules/extraConfig.nix;
nixos = import ../modules/nixos.nix { inherit utils; };
# darwin = import ../modules/darwin.nix { inherit utils; };
};
in
runCommand "modules" { } ''
mkdir -p $out
cp ${./modules.md} $out/index.md
${lib.concatLines (
lib.mapAttrsToList (name: module: "cat ${mkModuleDocs module} > $out/${name}.md") modules
)}
''