···17 nixpkgs.system = config.nixpkgs.system;
18 };
1920+ /* For the purpose of generating docs, evaluate options with each derivation
21+ in `pkgs` (recursively) replaced by a fake with path "\${pkgs.attribute.path}".
22+ It isn't perfect, but it seems to cover a vast majority of use cases.
23+ Caveat: even if the package is reached by a different means,
24+ the path above will be shown and not e.g. `${config.services.foo.package}`. */
25 manual = import ../../../doc/manual {
26 inherit pkgs;
27 version = config.system.nixosVersion;
28 revision = config.system.nixosRevision;
29+ options =
30+ let
31+ scrubbedEval = evalModules {
32+ modules = [ versionModule ] ++ baseModules;
33+ args = (config._module.args) // { modules = [ ]; };
34+ specialArgs = { pkgs = scrubDerivations "pkgs" pkgs; };
35+ };
36+ scrubDerivations = namePrefix: pkgSet: mapAttrs
37+ (name: value:
38+ let wholeName = "${namePrefix}.${name}"; in
39+ if isAttrs value then
40+ scrubDerivations wholeName value
41+ // (optionalAttrs (isDerivation value) { outPath = "\${${wholeName}}"; })
42+ else value
43+ )
44+ pkgSet;
45+ in scrubbedEval.options;
46 };
4748 entry = "${manual.manual}/share/doc/nixos/index.html";
···9798 services.nixosManual.browser = mkOption {
99 type = types.path;
100+ default = "${pkgs.w3m-nox}/bin/w3m";
101 description = ''
102 Browser used to show the manual.
103 '';
···134135 services.mingetty.helpLine = mkIf cfg.showManual
136 "\nPress <Alt-F${toString cfg.ttyNumber}> for the NixOS manual.";
00137138 };
139
+1-3
nixos/modules/services/misc/subsonic.nix
···9798 transcoders = mkOption {
99 type = types.listOf types.path;
0100 description = ''
101 List of paths to transcoder executables that should be accessible
102 from Subsonic. Symlinks will be created to each executable inside
···152 };
153154 users.extraGroups.subsonic.gid = config.ids.gids.subsonic;
155-156- services.subsonic.transcoders = mkDefault [ "${pkgs.ffmpeg}/bin/ffmpeg" ];
157-158 };
159}
···9798 transcoders = mkOption {
99 type = types.listOf types.path;
100+ default = [ "${pkgs.ffmpeg}/bin/ffmpeg" ];
101 description = ''
102 List of paths to transcoder executables that should be accessible
103 from Subsonic. Symlinks will be created to each executable inside
···153 };
154155 users.extraGroups.subsonic.gid = config.ids.gids.subsonic;
000156 };
157}
···52 default = "opendns";
53 type = types.nullOr types.string;
54 description = ''
55- The name of the upstream DNSCrypt resolver to use.
00056 '';
57 };
58 customResolver = mkOption {
···52 default = "opendns";
53 type = types.nullOr types.string;
54 description = ''
55+ The name of the upstream DNSCrypt resolver to use. See
56+ <literal>${resolverListFile}</literal> for alternative resolvers
57+ (e.g., if you are concerned about logging and/or server
58+ location).
59 '';
60 };
61 customResolver = mkOption {
···8788 background = mkOption {
89 type = types.str;
090 description = ''
91 The background image or color to use.
92 '';
···152 };
153154 users.extraGroups.lightdm.gid = config.ids.gids.lightdm;
155-156- services.xserver.displayManager.lightdm.background = mkDefault "${pkgs.nixos-artwork}/share/artwork/gnome/Gnome_Dark.png";
157-158 services.xserver.tty = null; # We might start multiple X servers so let the tty increment themselves..
159 services.xserver.display = null; # We specify our own display (and logfile) in xserver-wrapper up there
160 };
···8788 background = mkOption {
89 type = types.str;
90+ default = "${pkgs.nixos-artwork}/share/artwork/gnome/Gnome_Dark.png";
91 description = ''
92 The background image or color to use.
93 '';
···153 };
154155 users.extraGroups.lightdm.gid = config.ids.gids.lightdm;
000156 services.xserver.tty = null; # We might start multiple X servers so let the tty increment themselves..
157 services.xserver.display = null; # We specify our own display (and logfile) in xserver-wrapper up there
158 };