diff options
| author | Collin Williams <96917990+bluedragon1221@users.noreply.github.com> | 2026-01-11 13:36:45 -0600 |
|---|---|---|
| committer | Collin Williams <96917990+bluedragon1221@users.noreply.github.com> | 2026-01-11 13:36:45 -0600 |
| commit | dbc5cb478c7fad1c1750421486252f0a5d98ef9c (patch) | |
| tree | 2ca74b6cf1db48e2a1a4989b13a6bc7ac6dcfe32 /lib/nix-furnace | |
| parent | 32a7e59b93a9c3748cd6aeca3d4fc9dadf8e0f59 (diff) | |
now there's docs
Diffstat (limited to 'lib/nix-furnace')
| -rw-r--r-- | lib/nix-furnace/mkSystem.nix | 82 |
1 files changed, 55 insertions, 27 deletions
diff --git a/lib/nix-furnace/mkSystem.nix b/lib/nix-furnace/mkSystem.nix index 85f952c..2766082 100644 --- a/lib/nix-furnace/mkSystem.nix +++ b/lib/nix-furnace/mkSystem.nix @@ -4,6 +4,32 @@ let listModules = getSubdirs ../../modules; + nixosModules = hostname: + [ + ../../modules/options.nix + ../../hosts/${hostname}/config.nix + (lazyImport ../../hosts/${hostname}/nixos.nix) + ] + ++ (listModules + |> (builtins.map (modName: [ + (lazyImport ../../modules/${modName}/options.nix) + (lazyImport ../../modules/${modName}/nixos/default.nix) + ])) + |> my-lib.flatten); + + hjemModules = hostname: + [ + ../../modules/options.nix + ../../hosts/${hostname}/config.nix + (lazyImport ../../hosts/${hostname}/hjem.nix) + ] + ++ (listModules + |> (builtins.map (modName: [ + (lazyImport ../../modules/${modName}/options.nix) + (lazyImport ../../modules/${modName}/hjem/default.nix) + ])) + |> my-lib.flatten); + mkNixosSystem = { inputs, hostname, @@ -17,20 +43,7 @@ let ../../hosts/${hostname}/config.nix # Nixos-sided modules - { - imports = - [ - ../../modules/options.nix - ../../hosts/${hostname}/config.nix - (lazyImport ../../hosts/${hostname}/nixos.nix) - ] - ++ (listModules - |> (builtins.map (modName: [ - (lazyImport ../../modules/${modName}/options.nix) - (lazyImport ../../modules/${modName}/nixos/default.nix) - ])) - |> my-lib.flatten); - } + {imports = nixosModules hostname;} # Hjem-sided modules { @@ -38,18 +51,7 @@ let inputs.hjem.nixosModules.hjem ]; hjem = { - extraModules = - [ - ../../modules/options.nix - ../../hosts/${hostname}/config.nix - (lazyImport ../../hosts/${hostname}/hjem.nix) - ] - ++ (listModules - |> (builtins.map (modName: [ - (lazyImport ../../modules/${modName}/options.nix) - (lazyImport ../../modules/${modName}/hjem/default.nix) - ])) - |> my-lib.flatten); + extraModules = hjemModules hostname; specialArgs = {inherit inputs my-lib;}; users.${username} = { enable = true; @@ -60,6 +62,32 @@ let } ]; }; + + genDocs = { + lib, + pkgs, + inputs, + hostname, + ... + }: let + eval = lib.evalModules { + modules = listModules |> (builtins.map (m: (lazyImport ../../modules/${m}/options.nix))); + specialArgs = { + inherit my-lib pkgs; + }; + check = false; + }; + + optionsDoc = pkgs.nixosOptionsDoc { + inherit (eval) options; + }; + in + pkgs.runCommand "options-doc.md" { + buildInputs = [pkgs.pandoc]; + } '' + mkdir -p $out + cat ${optionsDoc.optionsCommonMark} | pandoc -t html -o - | tee $out/index.html + ''; in { - inherit mkNixosSystem; + inherit mkNixosSystem genDocs; } |
