about summary refs log tree commit diff
path: root/lib/kernel.nix
blob: d03d0103a678a0eb6c643092b36a41237b458be7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
{ lib }:

let
  inherit (lib) mkIf versionAtLeast versionOlder;
in
{


  # 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; };
  unset    = { tristate    = null; 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);
  };

}