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:
Damien Cassou 2020-09-09 08:50:32 +02:00 committed by Robert Helgesson
parent 812b64d4d3
commit 472ca211ca
No known key found for this signature in database
GPG key ID: 36BDAA14C2797E89
6 changed files with 97 additions and 0 deletions

View 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
'';
};
}

View file

@ -0,0 +1,4 @@
{
man-apropos = ./apropos.nix;
man-no-manpath = ./no-manpath.nix;
}

View file

@ -0,0 +1,13 @@
{ config, lib, pkgs, ... }:
with lib;
{
config = {
programs.man = { enable = true; };
nmt.script = ''
assertPathNotExists home-files/.manpath
'';
};
}