summary refs log tree commit diff
path: root/lib
diff options
context:
space:
mode:
authorzimbatm <zimbatm@zimbatm.com>2020-10-09 17:07:51 +0000
committerGitHub <noreply@github.com>2020-10-09 17:07:51 +0000
commitd8e4c8e612b05e00b7ead45d57547e4d24a3dc65 (patch)
tree914da1008841e2fbad81b7b092b80b8a63126192 /lib
parent73155864faf6c9b00e6e1b58d913bd3980bdf0a1 (diff)
parent035627dff23c4524345c4013e5e01ca95597452b (diff)
downloadnixpkgs-d8e4c8e612b05e00b7ead45d57547e4d24a3dc65.tar
nixpkgs-d8e4c8e612b05e00b7ead45d57547e4d24a3dc65.tar.gz
nixpkgs-d8e4c8e612b05e00b7ead45d57547e4d24a3dc65.tar.bz2
nixpkgs-d8e4c8e612b05e00b7ead45d57547e4d24a3dc65.tar.lz
nixpkgs-d8e4c8e612b05e00b7ead45d57547e4d24a3dc65.tar.xz
nixpkgs-d8e4c8e612b05e00b7ead45d57547e4d24a3dc65.tar.zst
nixpkgs-d8e4c8e612b05e00b7ead45d57547e4d24a3dc65.zip
Merge pull request #96641 from zimbatm/data-module-imports
nixos: Data module imports
Diffstat (limited to 'lib')
-rw-r--r--lib/default.nix2
-rw-r--r--lib/modules.nix17
-rw-r--r--lib/trivial.nix6
3 files changed, 24 insertions, 1 deletions
diff --git a/lib/default.nix b/lib/default.nix
index 43b9ab5930c..44076d29517 100644
--- a/lib/default.nix
+++ b/lib/default.nix
@@ -66,7 +66,7 @@ let
       stringLength sub substring tail;
     inherit (trivial) id const pipe concat or and bitAnd bitOr bitXor
       bitNot boolToString mergeAttrs flip mapNullable inNixShell min max
-      importJSON warn info showWarnings nixpkgsVersion version mod compare
+      importJSON importTOML warn info showWarnings nixpkgsVersion version mod compare
       splitByAndCompare functionArgs setFunctionArgs isFunction toHexString toBaseDigits;
     inherit (fixedPoints) fix fix' converge extends composeExtensions
       makeExtensible makeExtensibleWithCustomName;
diff --git a/lib/modules.nix b/lib/modules.nix
index 02a669df659..df3a2ad17e5 100644
--- a/lib/modules.nix
+++ b/lib/modules.nix
@@ -875,4 +875,21 @@ rec {
       ];
     };
 
+  /* Use this function to import a JSON file as NixOS configuration.
+
+     importJSON -> path -> attrs
+  */
+  importJSON = file: {
+    _file = file;
+    config = lib.importJSON file;
+  };
+
+  /* Use this function to import a TOML file as NixOS configuration.
+
+     importTOML -> path -> attrs
+  */
+  importTOML = file: {
+    _file = file;
+    config = lib.importTOML file;
+  };
 }
diff --git a/lib/trivial.nix b/lib/trivial.nix
index 9501a2906ca..268f39d3210 100644
--- a/lib/trivial.nix
+++ b/lib/trivial.nix
@@ -281,6 +281,12 @@ rec {
   importJSON = path:
     builtins.fromJSON (builtins.readFile path);
 
+  /* Reads a TOML file.
+
+     Type :: path -> any
+  */
+  importTOML = path:
+    builtins.fromTOML (builtins.readFile path);
 
   ## Warnings