lib.throwIfNot: init
This commit is contained in:
parent
cf73196411
commit
f2c5c706f4
@ -66,7 +66,8 @@ let
|
||||
stringLength sub substring tail trace;
|
||||
inherit (self.trivial) id const pipe concat or and bitAnd bitOr bitXor
|
||||
bitNot boolToString mergeAttrs flip mapNullable inNixShell isFloat min max
|
||||
importJSON importTOML warn warnIf info showWarnings nixpkgsVersion version
|
||||
importJSON importTOML warn warnIf throwIfNot
|
||||
info showWarnings nixpkgsVersion version
|
||||
mod compare splitByAndCompare functionArgs setFunctionArgs isFunction
|
||||
toHexString toBaseDigits;
|
||||
inherit (self.fixedPoints) fix fix' converge extends composeExtensions
|
||||
|
@ -325,6 +325,28 @@ rec {
|
||||
*/
|
||||
warnIf = cond: msg: if cond then warn msg else id;
|
||||
|
||||
/*
|
||||
Like the `assert b; e` expression, but with a custom error message and
|
||||
without the semicolon.
|
||||
|
||||
If true, return the identity function, `r: r`.
|
||||
|
||||
If false, throw the error message.
|
||||
|
||||
Calls can be juxtaposed using function application, as `(r: r) a = a`, so
|
||||
`(r: r) (r: r) a = a`, and so forth.
|
||||
|
||||
Type: bool -> string -> a -> a
|
||||
|
||||
Example:
|
||||
|
||||
throwIfNot (lib.isList overlays) "The overlays argument to nixpkgs must be a list."
|
||||
lib.foldr (x: throwIfNot (lib.isFunction x) "All overlays passed to nixpkgs must be functions.") (r: r) overlays
|
||||
pkgs
|
||||
|
||||
*/
|
||||
throwIfNot = cond: msg: if cond then x: x else throw msg;
|
||||
|
||||
info = msg: builtins.trace "INFO: ${msg}";
|
||||
|
||||
showWarnings = warnings: res: lib.foldr (w: x: warn w x) res warnings;
|
||||
|
@ -49,7 +49,7 @@ let # Rename the function arguments
|
||||
in let
|
||||
lib = import ../../lib;
|
||||
|
||||
throwIfNot = b: msg: if b then x: x else throw msg;
|
||||
inherit (lib) throwIfNot;
|
||||
|
||||
checked =
|
||||
throwIfNot (lib.isList overlays) "The overlays argument to nixpkgs must be a list."
|
||||
|
Loading…
Reference in New Issue
Block a user