{ lib }: with lib; { # Keeping these around in case we decide to change this horrible implementation :) option = x: x // { optional = true; }; yes = { tristate = "y"; optional = false; }; no = { tristate = "n"; optional = false; }; module = { tristate = "m"; optional = false; }; freeform = x: { freeform = x; optional = false; }; /* Common patterns/legacy used in common-config/hardened/config.nix */ whenHelpers = version: { whenAtLeast = ver: mkIf (versionAtLeast version ver); whenOlder = ver: mkIf (versionOlder version ver); # range is (inclusive, exclusive) whenBetween = verLow: verHigh: mkIf (versionAtLeast version verLow && versionOlder version verHigh); }; }