about summary refs log tree commit diff
path: root/lib/trivial.nix
diff options
context:
space:
mode:
authorzimbatm <zimbatm@zimbatm.com>2016-02-28 16:35:27 +0000
committerzimbatm <zimbatm@zimbatm.com>2016-02-29 11:21:56 +0000
commit22d7c08dc506f74803b7c61c6cbf156dfe844f02 (patch)
tree1a970444e1d8777c2a79cddc55c96c114c4e6dd0 /lib/trivial.nix
parentfa4499cc8c8a4d31cf8acff941f3c752fc993bee (diff)
lib.trivial: add a new importJSON function
This is meant to be used by packages who often re-generate their inputs.

Producing valid JSON is easier than nix, and also garantees it's purity.
Diffstat (limited to 'lib/trivial.nix')
-rw-r--r--lib/trivial.nix21
1 files changed, 21 insertions, 0 deletions
diff --git a/lib/trivial.nix b/lib/trivial.nix
index cda8aa08a205a..9821e3c138dd4 100644
--- a/lib/trivial.nix
+++ b/lib/trivial.nix
@@ -75,4 +75,25 @@ rec {
   min = x: y: if x < y then x else y;
   max = x: y: if x > y then x else y;
 
+  /* Reads a JSON file. It is useful to import pure data into other nix
+     expressions.
+
+     Example:
+
+       mkDerivation {
+         src = fetchgit (importJSON ./repo.json)
+         #...
+       }
+
+       where repo.json contains:
+
+       {
+         "url": "git://some-domain/some/repo",
+         "rev": "265de7283488964f44f0257a8b4a055ad8af984d",
+         "sha256": "0sb3h3067pzf3a7mlxn1hikpcjrsvycjcnj9hl9b1c3ykcgvps7h"
+       }
+
+  */
+  importJSON = path:
+    builtins.fromJSON (builtins.readFile path);
 }