summary refs log tree commit diff
path: root/nixos/lib/systemd-types.nix
blob: 71962fab2e17794755c8f94bfa067c6e416977b8 (plain) (blame)
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
{ lib, systemdUtils }:

with systemdUtils.lib;
with systemdUtils.unitOptions;
with lib;

rec {
  units = with types;
    attrsOf (submodule ({ name, config, ... }: {
      options = concreteUnitOptions;
      config = { unit = mkDefault (systemdUtils.lib.makeUnit name config); };
    }));

  services = with types; attrsOf (submodule [ stage2ServiceOptions unitConfig stage2ServiceConfig ]);
  initrdServices = with types; attrsOf (submodule [ stage1ServiceOptions unitConfig stage1ServiceConfig ]);

  targets = with types; attrsOf (submodule [ stage2CommonUnitOptions unitConfig ]);
  initrdTargets = with types; attrsOf (submodule [ stage1CommonUnitOptions unitConfig ]);

  sockets = with types; attrsOf (submodule [ stage2SocketOptions unitConfig ]);
  initrdSockets = with types; attrsOf (submodule [ stage1SocketOptions unitConfig ]);

  timers = with types; attrsOf (submodule [ stage2TimerOptions unitConfig ]);
  initrdTimers = with types; attrsOf (submodule [ stage1TimerOptions unitConfig ]);

  paths = with types; attrsOf (submodule [ stage2PathOptions unitConfig ]);
  initrdPaths = with types; attrsOf (submodule [ stage1PathOptions unitConfig ]);

  slices = with types; attrsOf (submodule [ stage2SliceOptions unitConfig ]);
  initrdSlices = with types; attrsOf (submodule [ stage1SliceOptions unitConfig ]);

  mounts = with types; listOf (submodule [ stage2MountOptions unitConfig mountConfig ]);
  initrdMounts = with types; listOf (submodule [ stage1MountOptions unitConfig mountConfig ]);

  automounts = with types; listOf (submodule [ stage2AutomountOptions unitConfig automountConfig ]);
  initrdAutomounts = with types; attrsOf (submodule [ stage1AutomountOptions unitConfig automountConfig ]);
}