Merge pull request #309608 from jmbaur/systemd-lib-range-or-one-of

nixos/systemd-lib: fix assertRangeOrOneOf when value is not comparable
This commit is contained in:
Florian Klink 2024-05-08 10:15:11 +03:00 committed by GitHub
commit 20f90ebed6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 2 additions and 1 deletions

View File

@ -18,6 +18,7 @@ let
flip
head
isInt
isFloat
isList
isPath
length
@ -152,7 +153,7 @@ in rec {
"Systemd ${group} field `${name}' is outside the range [${toString min},${toString max}]";
assertRangeOrOneOf = name: min: max: values: group: attr:
optional (attr ? ${name} && !((min <= attr.${name} && max >= attr.${name}) || elem attr.${name} values))
optional (attr ? ${name} && !(((isInt attr.${name} || isFloat attr.${name}) && min <= attr.${name} && max >= attr.${name}) || elem attr.${name} values))
"Systemd ${group} field `${name}' is not a value in range [${toString min},${toString max}], or one of ${toString values}";
assertMinimum = name: min: group: attr: