nixos/documentation/modular-services: init
Render documentation for modular services. https://nixos.org/manual/nixos/unstable/#modular-services This is admittedly not a great solution, but it is a rather simple solution that we can use until we develop a proper one. Flaws: - These are rendered in the NixOS documentation, but modular services are not meant to be exclusive to NixOS. - They are rendered as NixOS options, but should be imported into service submodules. Benefits: - Simple - search.nixos.org integration for free
This commit is contained in:
31
nixos/modules/misc/documentation/modular-services.nix
Normal file
31
nixos/modules/misc/documentation/modular-services.nix
Normal file
@@ -0,0 +1,31 @@
|
||||
/**
|
||||
Renders documentation for modular services.
|
||||
For inclusion into documentation.nixos.extraModules.
|
||||
*/
|
||||
{ lib, pkgs, ... }:
|
||||
let
|
||||
/**
|
||||
Causes a modular service's docs to be rendered.
|
||||
This is an intermediate solution until we have "native" service docs in some nicer form.
|
||||
*/
|
||||
fakeSubmodule =
|
||||
module:
|
||||
lib.mkOption {
|
||||
type = lib.types.submoduleWith {
|
||||
modules = [ module ];
|
||||
};
|
||||
description = "This is a [modular service](https://nixos.org/manual/nixos/unstable/#modular-services), which can be imported into a NixOS configuration using the [`system.services`](https://search.nixos.org/options?channel=unstable&show=system.services&query=modular+service) option.";
|
||||
};
|
||||
|
||||
modularServicesModule = {
|
||||
_file = "${__curPos.file}:${toString __curPos.line}";
|
||||
options = {
|
||||
"<imports = [ pkgs.ghostunnel.services.default ]>" = fakeSubmodule pkgs.ghostunnel.services.default;
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
documentation.nixos.extraModules = [
|
||||
modularServicesModule
|
||||
];
|
||||
}
|
||||
Reference in New Issue
Block a user