57 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
| <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>
 | 
