Commit bc644aee authored by Ivan Trubach's avatar Ivan Trubach
Browse files

nixos/networkd: allow state ranges in RequiredForOnline

RequiredForOnline takes a boolean or a minimum operational state and an
optional maximum operational state. In the latter case, range values are
separated with colon.
parent 8f21f3a0
Loading
Loading
Loading
Loading
+18 −11
Original line number Diff line number Diff line
@@ -514,7 +514,10 @@ let
        (assertValueOneOf "Unmanaged" boolValues)
        (assertInt "Group")
        (assertRange "Group" 0 2147483647)
        (assertValueOneOf "RequiredForOnline" (boolValues ++ [
        (assertValueOneOf "RequiredForOnline" (boolValues ++ (
          let
            # https://freedesktop.org/software/systemd/man/networkctl.html#missing
            operationalStates = [
              "missing"
              "off"
              "no-carrier"
@@ -524,7 +527,11 @@ let
              "degraded"
              "enslaved"
              "routable"
        ]))
            ];
            operationalStateRanges = concatLists (imap0 (i: min: map (max: "${min}:${max}") (drop i operationalStates)) operationalStates);
          in
          operationalStates ++ operationalStateRanges
        )))
        (assertValueOneOf "RequiredFamilyForOnline" [
          "ipv4"
          "ipv6"