nixpkgs/modules/services/misc/nixos-manual.nix
Eelco Dolstra e91d882a94 * Converted modules that were still using the old (concrete syntax)
style of declaring Upstart jobs.  While at it, converted them to the
  current NixOS module style and improved some option descriptions.
  Hopefully I didn't break too much :-)

svn path=/nixos/trunk/; revision=17761
2009-10-12 16:36:19 +00:00

104 lines
2.3 KiB
Nix

# This module includes the NixOS man-pages in the system environment,
# and optionally starts a browser that shows the NixOS manual on one
# of the virtual consoles. The latter is useful for the installation
# CD.
{ config, pkgs, options, ... }:
with pkgs.lib;
let
cfg = config.services.nixosManual;
manual = import ../../../doc/manual {
inherit (cfg) revision;
inherit pkgs options;
};
in
{
options = {
services.nixosManual.enable = mkOption {
default = true;
description = ''
Whether to build the NixOS manual pages.
'';
};
services.nixosManual.showManual = mkOption {
default = false;
description = ''
Whether to show the NixOS manual on one of the virtual
consoles.
'';
};
services.nixosManual.ttyNumber = mkOption {
default = "8";
description = ''
Virtual console on which to show the manual.
'';
};
services.nixosManual.browser = mkOption {
default = "${pkgs.w3m}/bin/w3m";
description = ''
Browser used to show the manual.
'';
};
services.nixosManual.revision = mkOption {
default = "local";
type = types.uniq types.string;
description = ''
Revision of the targeted source file. This value can either be
<literal>"local"</literal>, <literal>"HEAD"</literal> or any
revision number embedded in a string.
'';
};
};
config = mkIf cfg.enable {
system.build.manual = manual;
environment.systemPackages = [manual];
boot.extraTTYs = mkIf cfg.showManual [cfg.ttyNumber];
jobAttrs = mkIf cfg.showManual
{ nixosManual =
{ name = "nixos-manual";
description = "NixOS manual";
startOn = "udev";
stopOn = "shutdown";
exec =
''
${cfg.browser} ${manual}/share/doc/nixos/manual.html \
< /dev/tty${toString cfg.ttyNumber} > /dev/tty${toString cfg.ttyNumber} 2>&1
'';
};
};
services.ttyBackgrounds.specificThemes = mkIf cfg.showManual
[ { tty = cfg.ttyNumber;
theme = pkgs.themes "green";
}
];
services.mingetty.helpLine = mkIf cfg.showManual
"\nPress <Alt-F${toString cfg.ttyNumber}> for the NixOS manual.";
};
}