diff --git a/nixos/modules/misc/documentation/modular-services.nix b/nixos/modules/misc/documentation/modular-services.nix new file mode 100644 index 000000000000..07de80689658 --- /dev/null +++ b/nixos/modules/misc/documentation/modular-services.nix @@ -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 = { + "" = fakeSubmodule pkgs.ghostunnel.services.default; + }; + }; +in +{ + documentation.nixos.extraModules = [ + modularServicesModule + ]; +} diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index eb52b87a22b5..38881059011b 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -139,6 +139,7 @@ ./misc/assertions.nix ./misc/crashdump.nix ./misc/documentation.nix + ./misc/documentation/modular-services.nix ./misc/extra-arguments.nix ./misc/ids.nix ./misc/label.nix