summary refs log tree commit diff
path: root/lib/systems/inspect.nix
diff options
context:
space:
mode:
authorJohn Ericson <John.Ericson@Obsidian.Systems>2018-03-19 22:14:45 -0400
committerJohn Ericson <John.Ericson@Obsidian.Systems>2018-03-19 22:20:48 -0400
commit88c04a8b6b6714a61c8a28ec8bbd5ecf580ed2c7 (patch)
tree39154ad9aacfbd3c299b874a61d5b20afcf518c1 /lib/systems/inspect.nix
parent5bb50fb9f6b8c303a8a5e11656e6d2be76c45b33 (diff)
downloadnixpkgs-88c04a8b6b6714a61c8a28ec8bbd5ecf580ed2c7.tar
nixpkgs-88c04a8b6b6714a61c8a28ec8bbd5ecf580ed2c7.tar.gz
nixpkgs-88c04a8b6b6714a61c8a28ec8bbd5ecf580ed2c7.tar.bz2
nixpkgs-88c04a8b6b6714a61c8a28ec8bbd5ecf580ed2c7.tar.lz
nixpkgs-88c04a8b6b6714a61c8a28ec8bbd5ecf580ed2c7.tar.xz
nixpkgs-88c04a8b6b6714a61c8a28ec8bbd5ecf580ed2c7.tar.zst
nixpkgs-88c04a8b6b6714a61c8a28ec8bbd5ecf580ed2c7.zip
lib: Make platform predicates greppable
Diffstat (limited to 'lib/systems/inspect.nix')
-rw-r--r--lib/systems/inspect.nix84
1 files changed, 41 insertions, 43 deletions
diff --git a/lib/systems/inspect.nix b/lib/systems/inspect.nix
index 4cdd2629547..e8ea2bed25f 100644
--- a/lib/systems/inspect.nix
+++ b/lib/systems/inspect.nix
@@ -5,53 +5,51 @@ with lib.lists;
 
 rec {
   patterns = rec {
-    i686         = { cpu = cpuTypes.i686; };
-    x86_64       = { cpu = cpuTypes.x86_64; };
-    PowerPC      = { cpu = cpuTypes.powerpc; };
-    x86          = { cpu = { family = "x86"; }; };
-    Arm          = { cpu = { family = "arm"; }; };
-    Aarch64      = { cpu = { family = "aarch64"; }; };
-    Mips         = { cpu = { family = "mips"; }; };
-    RiscV        = { cpu = { family = "riscv"; }; };
-    Wasm         = { cpu = { family = "wasm"; }; };
-
-    "32bit"      = { cpu = { bits = 32; }; };
-    "64bit"      = { cpu = { bits = 64; }; };
-    BigEndian    = { cpu = { significantByte = significantBytes.bigEndian; }; };
-    LittleEndian = { cpu = { significantByte = significantBytes.littleEndian; }; };
-
-    BSD          = { kernel = { families = { inherit (kernelFamilies) bsd; }; }; };
-    Darwin       = { kernel = { families = { inherit (kernelFamilies) darwin; }; }; };
-    Unix         = [ BSD Darwin Linux SunOS Hurd Cygwin ];
-
-    MacOS        = { kernel = kernels.macos; };
-    iOS          = { kernel = kernels.ios; };
-    Linux        = { kernel = kernels.linux; };
-    SunOS        = { kernel = kernels.solaris; };
-    FreeBSD      = { kernel = kernels.freebsd; };
-    Hurd         = { kernel = kernels.hurd; };
-    NetBSD       = { kernel = kernels.netbsd; };
-    OpenBSD      = { kernel = kernels.openbsd; };
-    Windows      = { kernel = kernels.windows; };
-    Cygwin       = { kernel = kernels.windows; abi = abis.cygnus; };
-    MinGW        = { kernel = kernels.windows; abi = abis.gnu; };
-
-    Android      = [ { abi = abis.android; } { abi = abis.androideabi; } ];
-    Musl         = with abis; map (a: { abi = a; }) [ musl musleabi musleabihf ];
-
-    Kexecable    = map (family: { kernel = kernels.linux; cpu.family = family; })
-                     [ "x86" "arm" "aarch64" "mips" ];
-    Efi          = map (family: { cpu.family = family; })
-                     [ "x86" "arm" "aarch64" ];
-    Seccomputable = map (family: { kernel = kernels.linux; cpu.family = family; })
-                      [ "x86" "arm" "aarch64" "mips" ];
+    isi686         = { cpu = cpuTypes.i686; };
+    isx86_64       = { cpu = cpuTypes.x86_64; };
+    isPowerPC      = { cpu = cpuTypes.powerpc; };
+    isx86          = { cpu = { family = "x86"; }; };
+    isArm          = { cpu = { family = "arm"; }; };
+    isAarch64      = { cpu = { family = "aarch64"; }; };
+    isMips         = { cpu = { family = "mips"; }; };
+    isRiscV        = { cpu = { family = "riscv"; }; };
+    isWasm         = { cpu = { family = "wasm"; }; };
+
+    is32bit        = { cpu = { bits = 32; }; };
+    is64bit        = { cpu = { bits = 64; }; };
+    isBigEndian    = { cpu = { significantByte = significantBytes.bigEndian; }; };
+    isLittleEndian = { cpu = { significantByte = significantBytes.littleEndian; }; };
+
+    isBSD          = { kernel = { families = { inherit (kernelFamilies) bsd; }; }; };
+    isDarwin       = { kernel = { families = { inherit (kernelFamilies) darwin; }; }; };
+    isUnix         = [ isBSD isDarwin isLinux isSunOS isHurd isCygwin ];
+
+    isMacOS        = { kernel = kernels.macos; };
+    isiOS          = { kernel = kernels.ios; };
+    isLinux        = { kernel = kernels.linux; };
+    isSunOS        = { kernel = kernels.solaris; };
+    isFreeBSD      = { kernel = kernels.freebsd; };
+    isHurd         = { kernel = kernels.hurd; };
+    isNetBSD       = { kernel = kernels.netbsd; };
+    isOpenBSD      = { kernel = kernels.openbsd; };
+    isWindows      = { kernel = kernels.windows; };
+    isCygwin       = { kernel = kernels.windows; abi = abis.cygnus; };
+    isMinGW        = { kernel = kernels.windows; abi = abis.gnu; };
+
+    isAndroid      = [ { abi = abis.android; } { abi = abis.androideabi; } ];
+    isMusl         = with abis; map (a: { abi = a; }) [ musl musleabi musleabihf ];
+
+    isKexecable    = map (family: { kernel = kernels.linux; cpu.family = family; })
+                       [ "x86" "arm" "aarch64" "mips" ];
+    isEfi          = map (family: { cpu.family = family; })
+                       [ "x86" "arm" "aarch64" ];
+    isSeccomputable = map (family: { kernel = kernels.linux; cpu.family = family; })
+                        [ "x86" "arm" "aarch64" "mips" ];
   };
 
   matchAnyAttrs = patterns:
     if builtins.isList patterns then attrs: any (pattern: matchAttrs pattern attrs) patterns
     else matchAttrs patterns;
 
-  predicates = mapAttrs'
-    (name: value: nameValuePair ("is" + name) (matchAnyAttrs value))
-    patterns;
+  predicates = mapAttrs (_: matchAnyAttrs) patterns;
 }