summary refs log tree commit diff
path: root/nixos/doc
diff options
context:
space:
mode:
authorGraham Christensen <graham@grahamc.com>2018-04-27 21:26:06 -0400
committerGitHub <noreply@github.com>2018-04-27 21:26:06 -0400
commit68d48cecf6944d74e25a0faeff14aaa4c4ddaf0a (patch)
tree7bc8c6aa4f6dc89a6d5eeec74360842115a14c53 /nixos/doc
parentac716155b2b1280447c0e6ee8ef93a5510943f7d (diff)
parent1cc97befd5550732fd155d04cdd9eca3f5024dbc (diff)
downloadnixlib-68d48cecf6944d74e25a0faeff14aaa4c4ddaf0a.tar
nixlib-68d48cecf6944d74e25a0faeff14aaa4c4ddaf0a.tar.gz
nixlib-68d48cecf6944d74e25a0faeff14aaa4c4ddaf0a.tar.bz2
nixlib-68d48cecf6944d74e25a0faeff14aaa4c4ddaf0a.tar.lz
nixlib-68d48cecf6944d74e25a0faeff14aaa4c4ddaf0a.tar.xz
nixlib-68d48cecf6944d74e25a0faeff14aaa4c4ddaf0a.tar.zst
nixlib-68d48cecf6944d74e25a0faeff14aaa4c4ddaf0a.zip
Merge pull request #31418 from ryantm/doc-nixos-extra-module-path
lib/eval-config: document NIXOS_EXTRA_MODULE_PATH
Diffstat (limited to 'nixos/doc')
-rw-r--r--nixos/doc/manual/development/importing-modules.xml59
-rw-r--r--nixos/doc/manual/development/writing-modules.xml1
2 files changed, 60 insertions, 0 deletions
diff --git a/nixos/doc/manual/development/importing-modules.xml b/nixos/doc/manual/development/importing-modules.xml
new file mode 100644
index 000000000000..ec1da09b9507
--- /dev/null
+++ b/nixos/doc/manual/development/importing-modules.xml
@@ -0,0 +1,59 @@
+<section xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         version="5.0"
+         xml:id="sec-importing-modules">
+
+<title>Importing Modules</title>
+
+<para>
+  Sometimes NixOS modules need to be used in configuration but exist
+  outside of Nixpkgs. These modules can be imported:
+</para>
+
+<programlisting>
+{ config, lib, pkgs, ... }:
+
+{
+  imports =
+    [ # Use a locally-available module definition in
+      # ./example-module/default.nix
+        ./example-module
+    ];
+
+  services.exampleModule.enable = true;
+}
+</programlisting>
+
+<para>
+  The environment variable <literal>NIXOS_EXTRA_MODULE_PATH</literal> is
+  an absolute path to a NixOS module that is included alongside the
+  Nixpkgs NixOS modules. Like any NixOS module, this module can import
+  additional modules:
+</para>
+
+<programlisting>
+# ./module-list/default.nix
+[
+  ./example-module1
+  ./example-module2
+]
+</programlisting>
+
+<programlisting>
+# ./extra-module/default.nix
+{ imports = import ./module-list.nix; }
+</programlisting>
+
+<programlisting>
+# NIXOS_EXTRA_MODULE_PATH=/absolute/path/to/extra-module
+{ config, lib, pkgs, ... }:
+
+{
+  # No `imports` needed
+
+  services.exampleModule1.enable = true;
+}
+</programlisting>
+
+</section>
diff --git a/nixos/doc/manual/development/writing-modules.xml b/nixos/doc/manual/development/writing-modules.xml
index cb363b45675b..a49f99cb2669 100644
--- a/nixos/doc/manual/development/writing-modules.xml
+++ b/nixos/doc/manual/development/writing-modules.xml
@@ -180,6 +180,7 @@ in {
 <xi:include href="option-def.xml" />
 <xi:include href="assertions.xml" />
 <xi:include href="meta-attributes.xml" />
+<xi:include href="importing-modules.xml" />
 <xi:include href="replace-modules.xml" />
 
 </chapter>