about summary refs log tree commit diff
path: root/nixos/lib
diff options
context:
space:
mode:
authorign0tus <ign0tus@posteo.de>2023-09-28 17:04:35 +0200
committerign0tus <ign0tus@posteo.de>2023-09-28 17:04:35 +0200
commit237f7ba7d2b2be46049e3327eb8208b5ac450940 (patch)
tree62ca872974d28715a3a64ba845ef1a8e43b94f1d /nixos/lib
parentd76e8633bfe92a60e59aa1b4074c65f0bee436a9 (diff)
downloadnixlib-237f7ba7d2b2be46049e3327eb8208b5ac450940.tar
nixlib-237f7ba7d2b2be46049e3327eb8208b5ac450940.tar.gz
nixlib-237f7ba7d2b2be46049e3327eb8208b5ac450940.tar.bz2
nixlib-237f7ba7d2b2be46049e3327eb8208b5ac450940.tar.lz
nixlib-237f7ba7d2b2be46049e3327eb8208b5ac450940.tar.xz
nixlib-237f7ba7d2b2be46049e3327eb8208b5ac450940.tar.zst
nixlib-237f7ba7d2b2be46049e3327eb8208b5ac450940.zip
networkd: Allow combinations of WakeOnLan policies
To comply with the systemd.link WakeOnLan[^1] specification, the option
"off" and all other possible policy combinations must be allowed.

[^1]: https://www.freedesktop.org/software/systemd/man/systemd.link.html#WakeOnLan=
Diffstat (limited to 'nixos/lib')
-rw-r--r--nixos/lib/systemd-lib.nix4
1 files changed, 4 insertions, 0 deletions
diff --git a/nixos/lib/systemd-lib.nix b/nixos/lib/systemd-lib.nix
index f6535b514065..5669aae0bc19 100644
--- a/nixos/lib/systemd-lib.nix
+++ b/nixos/lib/systemd-lib.nix
@@ -80,6 +80,10 @@ in rec {
     optional (attr ? ${name} && !elem attr.${name} values)
       "Systemd ${group} field `${name}' cannot have value `${toString attr.${name}}'.";
 
+  assertValuesSomeOfOr = name: values: default: group: attr:
+    optional (attr ? ${name} && !(all (x: elem x values) (splitString " " attr.${name}) || attr.${name} == default))
+      "Systemd ${group} field `${name}' cannot have value `${toString attr.${name}}'.";
+
   assertHasField = name: group: attr:
     optional (!(attr ? ${name}))
       "Systemd ${group} field `${name}' must exist.";