summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/default.nix2
-rw-r--r--lib/trivial.nix34
2 files changed, 35 insertions, 1 deletions
diff --git a/lib/default.nix b/lib/default.nix
index 83ce7a6d7ea9..4345c48f3bc4 100644
--- a/lib/default.nix
+++ b/lib/default.nix
@@ -71,7 +71,7 @@ let
# these are the only ones that are currently not
inherit (builtins) addErrorContext isPath trace typeOf unsafeGetAttrPos;
inherit (self.trivial) id const pipe concat or and xor bitAnd bitOr bitXor
- bitNot boolToString mergeAttrs flip mapNullable inNixShell isFloat min max
+ bitNot boolToString mergeAttrs flip defaultTo mapNullable inNixShell isFloat min max
importJSON importTOML warn warnIf warnIfNot throwIf throwIfNot checkListOfEnum
info showWarnings nixpkgsVersion version isInOldestRelease oldestSupportedReleaseIsAtLeast
mod compare splitByAndCompare seq deepSeq lessThan add sub
diff --git a/lib/trivial.nix b/lib/trivial.nix
index 04fb9ffd4618..0e196018961c 100644
--- a/lib/trivial.nix
+++ b/lib/trivial.nix
@@ -317,6 +317,40 @@ in {
flip = f: a: b: f b a;
/**
+ Return `maybeValue` if not null, otherwise return `default`.
+
+
+ # Inputs
+
+ `default`
+
+ : 1\. Function argument
+
+ `maybeValue`
+
+ : 2\. Function argument
+
+
+ # Examples
+ :::{.example}
+ ## `lib.trivial.defaultTo` usage example
+
+ ```nix
+ defaultTo "default" null
+ => "default"
+ defaultTo "default" "foo"
+ => "foo"
+ defaultTo "default" false
+ => false
+ ```
+
+ :::
+ */
+ defaultTo = default: maybeValue:
+ if maybeValue != null then maybeValue
+ else default;
+
+ /**
Apply function if the supplied argument is non-null.