diff options
author | Robert Hensing <roberth@users.noreply.github.com> | 2018-11-04 20:35:03 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-11-04 20:35:03 +0100 |
commit | 14a9365952fcac6214b78a3b1f553961ad2f0a69 (patch) | |
tree | 068d7a5d473373ea6ef768f899657f4ceb79d03c /pkgs/top-level | |
parent | 98063b86b19e7ec95893903f76bd1a143a5f32dd (diff) | |
parent | 666e0ab1dd4c9d58f93882b0d012a49823c4f99b (diff) | |
download | nixpkgs-14a9365952fcac6214b78a3b1f553961ad2f0a69.tar nixpkgs-14a9365952fcac6214b78a3b1f553961ad2f0a69.tar.gz nixpkgs-14a9365952fcac6214b78a3b1f553961ad2f0a69.tar.bz2 nixpkgs-14a9365952fcac6214b78a3b1f553961ad2f0a69.tar.lz nixpkgs-14a9365952fcac6214b78a3b1f553961ad2f0a69.tar.xz nixpkgs-14a9365952fcac6214b78a3b1f553961ad2f0a69.tar.zst nixpkgs-14a9365952fcac6214b78a3b1f553961ad2f0a69.zip |
Merge pull request #49462 from roberth/pkgs-nixos-example
pkgs.nixos: Add example to inline documentation
Diffstat (limited to 'pkgs/top-level')
-rw-r--r-- | pkgs/top-level/all-packages.nix | 82 |
1 files changed, 50 insertions, 32 deletions
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 03aab60f40d..3cd0cc4887a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -22109,38 +22109,56 @@ with pkgs; nixops-dns = callPackage ../tools/package-management/nixops/nixops-dns.nix { }; - /* - * Evaluate a NixOS configuration using this evaluation of Nixpkgs. - * - * With this function you can write, for example, a package that - * depends on a custom virtual machine image. - * - * Parameter: A module, path or list of those that represent the - * configuration of the NixOS system to be constructed. - * - * Result: An attribute set containing packages produced by this - * evaluation of NixOS, such as toplevel, kernel and - * initialRamdisk. - * The result can be extended in the modules by defining - * extra options in system.build. - * - * Unlike in plain NixOS, the nixpkgs.config, nixpkgs.overlays and - * nixpkgs.system options will be ignored by default. Instead, - * nixpkgs.pkgs will have the default value of pkgs as it was - * constructed right after invoking the nixpkgs function (e.g. the - * value of import <nixpkgs> { overlays = [./my-overlay.nix]; } - * but not the value of (import <nixpkgs> {} // { extra = ...; }). - * - * If you do want to use the config.nixpkgs options, you are - * probably better off by calling nixos/lib/eval-config.nix - * directly, even though it is possible to set config.nixpkgs.pkgs. - * - * For more information about writing NixOS modules, see - * https://nixos.org/nixos/manual/index.html#sec-writing-modules - * - * Note that you will need to have called Nixpkgs with the system - * parameter set to the right value for your deployment target. - */ + /* Evaluate a NixOS configuration using this evaluation of Nixpkgs. + + With this function you can write, for example, a package that + depends on a custom virtual machine image. + + Parameter: A module, path or list of those that represent the + configuration of the NixOS system to be constructed. + + Result: An attribute set containing packages produced by this + evaluation of NixOS, such as toplevel, kernel and + initialRamdisk. + The result can be extended in the modules by defining + extra attributes in system.build. + + Example: + + let + myOS = pkgs.nixos ({ lib, pkgs, config, ... }: { + + config.services.nginx = { + enable = true; + # ... + }; + + # Use config.system.build to exports relevant parts of a + # configuration. The runner attribute should not be + # considered a fully general replacement for systemd + # functionality. + config.system.build.run-nginx = config.systemd.services.nginx.runner; + }); + in + myOS.run-nginx + + Unlike in plain NixOS, the nixpkgs.config, nixpkgs.overlays and + nixpkgs.system options will be ignored by default. Instead, + nixpkgs.pkgs will have the default value of pkgs as it was + constructed right after invoking the nixpkgs function (e.g. the + value of import <nixpkgs> { overlays = [./my-overlay.nix]; } + but not the value of (import <nixpkgs> {} // { extra = ...; }). + + If you do want to use the config.nixpkgs options, you are + probably better off by calling nixos/lib/eval-config.nix + directly, even though it is possible to set config.nixpkgs.pkgs. + + For more information about writing NixOS modules, see + https://nixos.org/nixos/manual/index.html#sec-writing-modules + + Note that you will need to have called Nixpkgs with the system + parameter set to the right value for your deployment target. + */ nixos = configuration: (import (self.path + "/nixos/lib/eval-config.nix") { inherit (pkgs.stdenv.hostPlatform) system; |