summaryrefslogtreecommitdiff
path: root/lib/kernel.nix
blob: 66a00fd7e0cf5970a9caf3ed076fbb7d0beed645 (about) (plain)
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
29
30
31
32
33
34
35
36
37
38
39
40
{ 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);
  };

}