nixos/systemd-lib: allow mkIf in unitOption
`unitOption` is only used inside of `attrsOf` wich is perfectly capable of handling the attrsets from `mkIf`, though the checkUnitConfig test forbids it. This commit weakens that restriction to allow the usage of `mkIf` inside of `systemd.services.<name>.serviceConfig.<something>` etc.
This commit is contained in:
parent
758b29b5a2
commit
97718a3584
@ -92,10 +92,12 @@ in rec {
|
||||
|
||||
checkUnitConfig = group: checks: attrs: let
|
||||
# We're applied at the top-level type (attrsOf unitOption), so the actual
|
||||
# unit options might contain attributes from mkOverride that we need to
|
||||
# unit options might contain attributes from mkOverride and mkIf that we need to
|
||||
# convert into single values before checking them.
|
||||
defs = mapAttrs (const (v:
|
||||
if v._type or "" == "override" then v.content else v
|
||||
if v._type or "" == "override" then v.content
|
||||
else if v._type or "" == "if" then v.content
|
||||
else v
|
||||
)) attrs;
|
||||
errors = concatMap (c: c group defs) checks;
|
||||
in if errors == [] then true
|
||||
|
Loading…
Reference in New Issue
Block a user