Merge #12796: nixos docs: show references to packages

(version 2) A better implementation of #10039, after #12357.
This time I did more thorough checking.

See commit messages for details.
This commit is contained in:
Vladimír Čunát 2016-02-27 10:48:12 +01:00
commit 3cf9cd8bc3
9 changed files with 35 additions and 27 deletions

View File

@ -36,6 +36,7 @@ in
askPassword = mkOption {
type = types.str;
default = "${pkgs.x11_ssh_askpass}/libexec/x11-ssh-askpass";
description = ''Program used by SSH to ask for passwords.'';
};
@ -226,7 +227,5 @@ in
environment.variables.SSH_ASKPASS = optionalString config.services.xserver.enable askPassword;
programs.ssh.askPassword = mkDefault "${pkgs.x11_ssh_askpass}/libexec/x11-ssh-askpass";
};
}

View File

@ -99,6 +99,7 @@ in
};
outputTheme = mkOption {
default = "${pkgs.venus}/themes/classic_fancy";
type = types.path;
description = ''
Directory containing a config.ini file which is merged with this one.
@ -168,7 +169,5 @@ in
startAt = cfg.dates;
};
services.venus.outputTheme = mkDefault "${pkgs.venus}/themes/classic_fancy";
};
}

View File

@ -32,6 +32,7 @@ in {
'';
};
configurationDir = mkOption {
default = "${activemq}/conf";
description = ''
The base directory for ActiveMQ's configuration.
By default, this directory is searched for a file named activemq.xml,
@ -125,8 +126,6 @@ in {
'';
};
services.activemq.configurationDir = mkDefault "${activemq}/conf";
};
}

View File

@ -17,16 +17,32 @@ let
nixpkgs.system = config.nixpkgs.system;
};
eval = evalModules {
modules = [ versionModule ] ++ baseModules;
args = (config._module.args) // { modules = [ ]; };
};
/* For the purpose of generating docs, evaluate options with each derivation
in `pkgs` (recursively) replaced by a fake with path "\${pkgs.attribute.path}".
It isn't perfect, but it seems to cover a vast majority of use cases.
Caveat: even if the package is reached by a different means,
the path above will be shown and not e.g. `${config.services.foo.package}`. */
manual = import ../../../doc/manual {
inherit pkgs;
version = config.system.nixosVersion;
revision = config.system.nixosRevision;
options = eval.options;
options =
let
scrubbedEval = evalModules {
modules = [ versionModule ] ++ baseModules;
args = (config._module.args) // { modules = [ ]; };
specialArgs = { pkgs = scrubDerivations "pkgs" pkgs; };
};
scrubDerivations = namePrefix: pkgSet: mapAttrs
(name: value:
let wholeName = "${namePrefix}.${name}"; in
if isAttrs value then
scrubDerivations wholeName value
// (optionalAttrs (isDerivation value) { outPath = "\${${wholeName}}"; })
else value
)
pkgSet;
in scrubbedEval.options;
};
entry = "${manual.manual}/share/doc/nixos/index.html";
@ -81,6 +97,7 @@ in
services.nixosManual.browser = mkOption {
type = types.path;
default = "${pkgs.w3m-nox}/bin/w3m";
description = ''
Browser used to show the manual.
'';
@ -118,8 +135,6 @@ in
services.mingetty.helpLine = mkIf cfg.showManual
"\nPress <Alt-F${toString cfg.ttyNumber}> for the NixOS manual.";
services.nixosManual.browser = mkDefault "${pkgs.w3m-nox}/bin/w3m";
};
}

View File

@ -97,6 +97,7 @@ in
transcoders = mkOption {
type = types.listOf types.path;
default = [ "${pkgs.ffmpeg}/bin/ffmpeg" ];
description = ''
List of paths to transcoder executables that should be accessible
from Subsonic. Symlinks will be created to each executable inside
@ -152,8 +153,5 @@ in
};
users.extraGroups.subsonic.gid = config.ids.gids.subsonic;
services.subsonic.transcoders = mkDefault [ "${pkgs.ffmpeg}/bin/ffmpeg" ];
};
}

View File

@ -87,6 +87,7 @@ in {
staticRootPath = mkOption {
description = "Root path for static assets.";
default = "${cfg.package.out}/share/grafana/public";
type = types.str;
};
@ -232,8 +233,5 @@ in {
home = cfg.dataDir;
createHome = true;
};
services.grafana.staticRootPath = mkDefault "${cfg.package}/share/grafana/public";
};
}

View File

@ -52,7 +52,10 @@ in
default = "opendns";
type = types.nullOr types.string;
description = ''
The name of the upstream DNSCrypt resolver to use.
The name of the upstream DNSCrypt resolver to use. See
<literal>${resolverListFile}</literal> for alternative resolvers
(e.g., if you are concerned about logging and/or server
location).
'';
};
customResolver = mkOption {

View File

@ -46,7 +46,8 @@ in {
phpIni = mkOption {
type = types.path;
description = "PHP configuration file to use.";
default = "${cfg.phpPackage}/etc/php-recommended.ini";
description = "php.ini file to use.";
};
poolConfigs = mkOption {
@ -87,7 +88,5 @@ in {
};
};
services.phpfpm.phpIni = mkDefault "${cfg.phpPackage}/etc/php-recommended.ini";
};
}

View File

@ -87,6 +87,7 @@ in
background = mkOption {
type = types.str;
default = "${pkgs.nixos-artwork}/share/artwork/gnome/Gnome_Dark.png";
description = ''
The background image or color to use.
'';
@ -152,9 +153,6 @@ in
};
users.extraGroups.lightdm.gid = config.ids.gids.lightdm;
services.xserver.displayManager.lightdm.background = mkDefault "${pkgs.nixos-artwork}/share/artwork/gnome/Gnome_Dark.png";
services.xserver.tty = null; # We might start multiple X servers so let the tty increment themselves..
services.xserver.display = null; # We specify our own display (and logfile) in xserver-wrapper up there
};