nixos: doc: introduce documentation
config subtree
This commit is contained in:
parent
a7af5d4f88
commit
98fd9b7f86
|
@ -109,7 +109,6 @@ in
|
||||||
"/sbin"
|
"/sbin"
|
||||||
"/share/applications"
|
"/share/applications"
|
||||||
"/share/desktop-directories"
|
"/share/desktop-directories"
|
||||||
"/share/doc"
|
|
||||||
"/share/emacs"
|
"/share/emacs"
|
||||||
"/share/icons"
|
"/share/icons"
|
||||||
"/share/menus"
|
"/share/menus"
|
||||||
|
|
77
nixos/modules/misc/documentation.nix
Normal file
77
nixos/modules/misc/documentation.nix
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.documentation; in
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
options = {
|
||||||
|
|
||||||
|
documentation = {
|
||||||
|
|
||||||
|
enable = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = true;
|
||||||
|
description = ''
|
||||||
|
Whether to install documentation of packages from
|
||||||
|
<option>environment.systemPackages</option> into the generated system path.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
man.enable = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = true;
|
||||||
|
description = ''
|
||||||
|
Whether to install manual pages and the <command>man</command> command.
|
||||||
|
This also includes "man" outputs.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
doc.enable = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = true;
|
||||||
|
description = ''
|
||||||
|
Whether to install documentation distributed in packages' <literal>/share/doc</literal>.
|
||||||
|
Usually plain text and/or HTML.
|
||||||
|
This also includes "doc" outputs.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
info.enable = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = true;
|
||||||
|
description = ''
|
||||||
|
Whether to install info pages and the <command>info</command> command.
|
||||||
|
This also includes "info" outputs.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable (mkMerge [
|
||||||
|
|
||||||
|
(mkIf cfg.man.enable {
|
||||||
|
environment.systemPackages = [ pkgs.man-db ];
|
||||||
|
environment.pathsToLink = [ "/share/man" ];
|
||||||
|
environment.extraOutputsToInstall = [ "man" ];
|
||||||
|
})
|
||||||
|
|
||||||
|
(mkIf cfg.doc.enable {
|
||||||
|
# TODO(@oxij): put it here and remove from profiles?
|
||||||
|
# environment.systemPackages = [ pkgs.w3m ]; # w3m-nox?
|
||||||
|
environment.pathsToLink = [ "/share/doc" ];
|
||||||
|
environment.extraOutputsToInstall = [ "doc" ];
|
||||||
|
})
|
||||||
|
|
||||||
|
(mkIf cfg.info.enable {
|
||||||
|
environment.systemPackages = [ pkgs.texinfoInteractive ];
|
||||||
|
environment.pathsToLink = [ "/share/info" ];
|
||||||
|
environment.extraOutputsToInstall = [ "info" ];
|
||||||
|
})
|
||||||
|
|
||||||
|
]);
|
||||||
|
|
||||||
|
}
|
|
@ -58,6 +58,7 @@
|
||||||
./installer/tools/tools.nix
|
./installer/tools/tools.nix
|
||||||
./misc/assertions.nix
|
./misc/assertions.nix
|
||||||
./misc/crashdump.nix
|
./misc/crashdump.nix
|
||||||
|
./misc/documentation.nix
|
||||||
./misc/extra-arguments.nix
|
./misc/extra-arguments.nix
|
||||||
./misc/ids.nix
|
./misc/ids.nix
|
||||||
./misc/lib.nix
|
./misc/lib.nix
|
||||||
|
@ -85,12 +86,10 @@
|
||||||
./programs/freetds.nix
|
./programs/freetds.nix
|
||||||
./programs/gnupg.nix
|
./programs/gnupg.nix
|
||||||
./programs/gphoto2.nix
|
./programs/gphoto2.nix
|
||||||
./programs/info.nix
|
|
||||||
./programs/java.nix
|
./programs/java.nix
|
||||||
./programs/kbdlight.nix
|
./programs/kbdlight.nix
|
||||||
./programs/less.nix
|
./programs/less.nix
|
||||||
./programs/light.nix
|
./programs/light.nix
|
||||||
./programs/man.nix
|
|
||||||
./programs/mosh.nix
|
./programs/mosh.nix
|
||||||
./programs/mtr.nix
|
./programs/mtr.nix
|
||||||
./programs/nano.nix
|
./programs/nano.nix
|
||||||
|
|
|
@ -10,10 +10,9 @@ with lib;
|
||||||
|
|
||||||
# This isn't perfect, but let's expect the user specifies an UTF-8 defaultLocale
|
# This isn't perfect, but let's expect the user specifies an UTF-8 defaultLocale
|
||||||
i18n.supportedLocales = [ (config.i18n.defaultLocale + "/UTF-8") ];
|
i18n.supportedLocales = [ (config.i18n.defaultLocale + "/UTF-8") ];
|
||||||
services.nixosManual.enable = mkDefault false;
|
|
||||||
|
|
||||||
programs.man.enable = mkDefault false;
|
documentation.enable = mkDefault false;
|
||||||
programs.info.enable = mkDefault false;
|
services.nixosManual.enable = mkDefault false;
|
||||||
|
|
||||||
sound.enable = mkDefault false;
|
sound.enable = mkDefault false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,30 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
options = {
|
|
||||||
|
|
||||||
programs.info.enable = mkOption {
|
|
||||||
type = types.bool;
|
|
||||||
default = true;
|
|
||||||
description = ''
|
|
||||||
Whether to enable info pages and the <command>info</command> command.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
config = mkIf config.programs.info.enable {
|
|
||||||
|
|
||||||
environment.systemPackages = [ pkgs.texinfoInteractive ];
|
|
||||||
|
|
||||||
environment.pathsToLink = [ "/info" "/share/info" ];
|
|
||||||
|
|
||||||
environment.extraOutputsToInstall = [ "info" ];
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,31 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
options = {
|
|
||||||
|
|
||||||
programs.man.enable = mkOption {
|
|
||||||
type = types.bool;
|
|
||||||
default = true;
|
|
||||||
description = ''
|
|
||||||
Whether to enable manual pages and the <command>man</command> command.
|
|
||||||
This also includes "man" outputs of all <literal>systemPackages</literal>.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
config = mkIf config.programs.man.enable {
|
|
||||||
|
|
||||||
environment.systemPackages = [ pkgs.man-db ];
|
|
||||||
|
|
||||||
environment.pathsToLink = [ "/share/man" ];
|
|
||||||
|
|
||||||
environment.extraOutputsToInstall = [ "man" ];
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
|
@ -240,6 +240,10 @@ with lib;
|
||||||
|
|
||||||
# Xen
|
# Xen
|
||||||
(mkRenamedOptionModule [ "virtualisation" "xen" "qemu-package" ] [ "virtualisation" "xen" "package-qemu" ])
|
(mkRenamedOptionModule [ "virtualisation" "xen" "qemu-package" ] [ "virtualisation" "xen" "package-qemu" ])
|
||||||
|
|
||||||
|
(mkRenamedOptionModule [ "programs" "info" "enable" ] [ "documentation" "info" "enable" ])
|
||||||
|
(mkRenamedOptionModule [ "programs" "man" "enable" ] [ "documentation" "man" "enable" ])
|
||||||
|
|
||||||
] ++ (flip map [ "blackboxExporter" "collectdExporter" "fritzboxExporter"
|
] ++ (flip map [ "blackboxExporter" "collectdExporter" "fritzboxExporter"
|
||||||
"jsonExporter" "minioExporter" "nginxExporter" "nodeExporter"
|
"jsonExporter" "minioExporter" "nginxExporter" "nodeExporter"
|
||||||
"snmpExporter" "unifiExporter" "varnishExporter" ]
|
"snmpExporter" "unifiExporter" "varnishExporter" ]
|
||||||
|
|
|
@ -112,10 +112,10 @@ in
|
||||||
|
|
||||||
system.build.manual = manual;
|
system.build.manual = manual;
|
||||||
|
|
||||||
environment.systemPackages =
|
environment.systemPackages = []
|
||||||
[ manual.manual helpScript ]
|
++ optionals config.services.xserver.enable [ desktopItem pkgs.nixos-icons ]
|
||||||
++ optionals config.services.xserver.enable [desktopItem pkgs.nixos-icons]
|
++ optional config.documentation.man.enable manual.manpages
|
||||||
++ optional config.programs.man.enable manual.manpages;
|
++ optionals config.documentation.doc.enable [ manual.manual helpScript ];
|
||||||
|
|
||||||
boot.extraTTYs = mkIf cfg.showManual ["tty${toString cfg.ttyNumber}"];
|
boot.extraTTYs = mkIf cfg.showManual ["tty${toString cfg.ttyNumber}"];
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue