diff options
author | Robert Hensing <robert@roberthensing.nl> | 2018-10-30 15:24:08 +0100 |
---|---|---|
committer | Robert Hensing <robert@roberthensing.nl> | 2018-10-30 15:24:19 +0100 |
commit | c3a7194843a6423bd5875756ba9c1e05e5c9b79a (patch) | |
tree | b5d5c8c1081e828a889b59cd0c61e828069ff28b | |
parent | 863a795281203d8c53281ce5196030528cb94e5a (diff) | |
download | nixlib-c3a7194843a6423bd5875756ba9c1e05e5c9b79a.tar nixlib-c3a7194843a6423bd5875756ba9c1e05e5c9b79a.tar.gz nixlib-c3a7194843a6423bd5875756ba9c1e05e5c9b79a.tar.bz2 nixlib-c3a7194843a6423bd5875756ba9c1e05e5c9b79a.tar.lz nixlib-c3a7194843a6423bd5875756ba9c1e05e5c9b79a.tar.xz nixlib-c3a7194843a6423bd5875756ba9c1e05e5c9b79a.tar.zst nixlib-c3a7194843a6423bd5875756ba9c1e05e5c9b79a.zip |
pkgs.nixos: Add example to inline documentation
-rw-r--r-- | pkgs/top-level/all-packages.nix | 79 |
1 files changed, 47 insertions, 32 deletions
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 130a3495c6d2..84b3adf72974 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -22097,38 +22097,53 @@ 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; + # ... + }; + + # This exports a runner for nginx + 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; |