man: support building manual page index cache
The apropos software is useful to get a list of manpages matching a
description or to get a list of all manpages. The latter feature is
used by Emacs to get manpage completion (`M-x man`).
To have apropos working, a database of all available manpages must be
built with mandb. This is what this commits does.
A similar change was done for NixOS:
edc6a76cc0
This commit is contained in:
parent
812b64d4d3
commit
472ca211ca
6 changed files with 97 additions and 0 deletions
22
tests/modules/programs/man/apropos.nix
Normal file
22
tests/modules/programs/man/apropos.nix
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
{
|
||||
config = {
|
||||
programs.man = {
|
||||
enable = true;
|
||||
generateCaches = true;
|
||||
};
|
||||
|
||||
nmt.script = ''
|
||||
assertFileExists home-files/.manpath
|
||||
|
||||
CACHE_DIR=$(cat $TESTED/home-files/.manpath | cut --delimiter=' ' --fields=3)
|
||||
|
||||
if [[ ! -f "$CACHE_DIR/index.bt" ]]; then
|
||||
fail "Expected man cache files to exist (in $CACHE_DIR) but they were not found."
|
||||
fi
|
||||
'';
|
||||
};
|
||||
}
|
||||
4
tests/modules/programs/man/default.nix
Normal file
4
tests/modules/programs/man/default.nix
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
man-apropos = ./apropos.nix;
|
||||
man-no-manpath = ./no-manpath.nix;
|
||||
}
|
||||
13
tests/modules/programs/man/no-manpath.nix
Normal file
13
tests/modules/programs/man/no-manpath.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
{
|
||||
config = {
|
||||
programs.man = { enable = true; };
|
||||
|
||||
nmt.script = ''
|
||||
assertPathNotExists home-files/.manpath
|
||||
'';
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue