lib.throwIfNot: init
This commit is contained in:
parent
cf73196411
commit
f2c5c706f4
@ -66,7 +66,8 @@ let
|
|||||||
stringLength sub substring tail trace;
|
stringLength sub substring tail trace;
|
||||||
inherit (self.trivial) id const pipe concat or and bitAnd bitOr bitXor
|
inherit (self.trivial) id const pipe concat or and bitAnd bitOr bitXor
|
||||||
bitNot boolToString mergeAttrs flip mapNullable inNixShell isFloat min max
|
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
|
mod compare splitByAndCompare functionArgs setFunctionArgs isFunction
|
||||||
toHexString toBaseDigits;
|
toHexString toBaseDigits;
|
||||||
inherit (self.fixedPoints) fix fix' converge extends composeExtensions
|
inherit (self.fixedPoints) fix fix' converge extends composeExtensions
|
||||||
|
@ -325,6 +325,28 @@ rec {
|
|||||||
*/
|
*/
|
||||||
warnIf = cond: msg: if cond then warn msg else id;
|
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}";
|
info = msg: builtins.trace "INFO: ${msg}";
|
||||||
|
|
||||||
showWarnings = warnings: res: lib.foldr (w: x: warn w x) res warnings;
|
showWarnings = warnings: res: lib.foldr (w: x: warn w x) res warnings;
|
||||||
|
@ -49,7 +49,7 @@ let # Rename the function arguments
|
|||||||
in let
|
in let
|
||||||
lib = import ../../lib;
|
lib = import ../../lib;
|
||||||
|
|
||||||
throwIfNot = b: msg: if b then x: x else throw msg;
|
inherit (lib) throwIfNot;
|
||||||
|
|
||||||
checked =
|
checked =
|
||||||
throwIfNot (lib.isList overlays) "The overlays argument to nixpkgs must be a list."
|
throwIfNot (lib.isList overlays) "The overlays argument to nixpkgs must be a list."
|
||||||
|
Loading…
Reference in New Issue
Block a user