summaryrefslogtreecommitdiffstats
path: root/nixos/modules/misc/documentation/modular-services.nix
blob: 639e11ab6292f0a02c2a7ae2974961a122acc2df (plain)
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
/**
  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 = {
    options = {
      "<imports = [ pkgs.autopush-rs.services.autoconnect ]>" =
        fakeSubmodule pkgs.autopush-rs.services.autoconnect;
      "<imports = [ pkgs.autopush-rs.services.autoendpoint ]>" =
        fakeSubmodule pkgs.autopush-rs.services.autoendpoint;
      "<imports = [ pkgs.ghostunnel.services.default ]>" = fakeSubmodule pkgs.ghostunnel.services.default;
      "<imports = [ pkgs.git-pages.services.default ]>" = fakeSubmodule pkgs.git-pages.services.default;
      "<imports = [ pkgs.ktls-utils.services.default ]>" = fakeSubmodule pkgs.ktls-utils.services.default;
      "<imports = [ pkgs.php.services.default ]>" = fakeSubmodule pkgs.php.services.default;
      "<imports = [ pkgs.snid.services.default ]>" = fakeSubmodule pkgs.snid.services.default;
      "<imports = [ pkgs.trailbase.services.default ]>" = fakeSubmodule pkgs.trailbase.services.default;
    };
  };
in
{
  documentation.nixos.extraModules = [
    modularServicesModule
  ];
}