aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/lib/options.nix
diff options
context:
space:
mode:
authorMx Kookie <kookie@spacekookie.de>2020-12-09 18:55:19 +0000
committerMx Kookie <kookie@spacekookie.de>2020-12-09 18:55:19 +0000
commit80d90d9b204f7c17912740f9f414fe5d59f293ba (patch)
tree5f2065a06e724270610760d59d01c6888b375a46 /infra/libkookie/nixpkgs/lib/options.nix
parent3a31a84c7d3e589035ad08499206aac44a81f424 (diff)
parent83cbad92d73216bb0d9187c56cce0b91f9121d5a (diff)
Merge commit '83cbad92d73216bb0d9187c56cce0b91f9121d5a' into main
Diffstat (limited to 'infra/libkookie/nixpkgs/lib/options.nix')
-rw-r--r--infra/libkookie/nixpkgs/lib/options.nix41
1 files changed, 35 insertions, 6 deletions
diff --git a/infra/libkookie/nixpkgs/lib/options.nix b/infra/libkookie/nixpkgs/lib/options.nix
index 5b7482c80937..87cd8b797969 100644
--- a/infra/libkookie/nixpkgs/lib/options.nix
+++ b/infra/libkookie/nixpkgs/lib/options.nix
@@ -1,11 +1,40 @@
# Nixpkgs/NixOS option handling.
{ lib }:
-with lib.trivial;
-with lib.lists;
-with lib.attrsets;
-with lib.strings;
-
+let
+ inherit (lib)
+ all
+ collect
+ concatLists
+ concatMap
+ elemAt
+ filter
+ foldl'
+ head
+ isAttrs
+ isBool
+ isDerivation
+ isFunction
+ isInt
+ isList
+ isString
+ length
+ mapAttrs
+ optional
+ optionals
+ take
+ ;
+ inherit (lib.attrsets)
+ optionalAttrs
+ ;
+ inherit (lib.strings)
+ concatMapStrings
+ concatStringsSep
+ ;
+ inherit (lib.types)
+ mkOptionType
+ ;
+in
rec {
/* Returns true when the given argument is an option
@@ -110,7 +139,7 @@ rec {
# Return early if we only have one element
# This also makes it work for functions, because the foldl' below would try
# to compare the first element with itself, which is false for functions
- else if length defs == 1 then (elemAt defs 0).value
+ else if length defs == 1 then (head defs).value
else (foldl' (first: def:
if def.value != first.value then
throw "The option `${showOption loc}' has conflicting definition values:${showDefs [ first def ]}"