diff options
author | Jan Malakhovski <oxij@oxij.org> | 2015-08-17 16:04:16 +0000 |
---|---|---|
committer | Jan Malakhovski <oxij@oxij.org> | 2015-08-18 18:42:57 +0000 |
commit | c6256c0e3e4292080b8574a483bdfce4b7d81b5f (patch) | |
tree | 4053ba416f414cc10b0a48c71b25d6818581fc45 | |
parent | fea03379d635800ca9e96f36467f80d5d5189357 (diff) | |
download | nixlib-c6256c0e3e4292080b8574a483bdfce4b7d81b5f.tar nixlib-c6256c0e3e4292080b8574a483bdfce4b7d81b5f.tar.gz nixlib-c6256c0e3e4292080b8574a483bdfce4b7d81b5f.tar.bz2 nixlib-c6256c0e3e4292080b8574a483bdfce4b7d81b5f.tar.lz nixlib-c6256c0e3e4292080b8574a483bdfce4b7d81b5f.tar.xz nixlib-c6256c0e3e4292080b8574a483bdfce4b7d81b5f.tar.zst nixlib-c6256c0e3e4292080b8574a483bdfce4b7d81b5f.zip |
nixos: generate infodirs directly in system-path
`man 1 info` says: The first non-option argument, if present, is the menu entry to start from; it is searched for in all `dir' files along INFOPATH. If it is not present, info merges all `dir' files and shows the result. Any remaining arguments are treated as the names of menu items relative to the initial node visited. Which means that this does what previous programs/info did and #8519 (on-the-fly infodir generation for Emacs) wanted to do, but for both programs.
-rw-r--r-- | nixos/modules/config/system-path.nix | 8 | ||||
-rw-r--r-- | nixos/modules/module-list.nix | 1 | ||||
-rw-r--r-- | nixos/modules/programs/info.nix | 38 |
3 files changed, 8 insertions, 39 deletions
diff --git a/nixos/modules/config/system-path.nix b/nixos/modules/config/system-path.nix index ec112b63b2fc..3a9a09ee87c1 100644 --- a/nixos/modules/config/system-path.nix +++ b/nixos/modules/config/system-path.nix @@ -45,6 +45,7 @@ let pkgs.strace pkgs.su pkgs.time + pkgs.texinfoInteractive pkgs.utillinux extraManpages ]; @@ -138,6 +139,13 @@ in if [ -x $out/bin/update-desktop-database -a -w $out/share/applications ]; then $out/bin/update-desktop-database $out/share/applications fi + + if [ -x $out/bin/install-info -a -w $out/share/info ]; then + shopt -s nullglob + for i in $out/share/info/*.info $out/share/info/*.info.gz; do + $out/bin/install-info $i $out/share/info/dir + done + fi ''; }; diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 733f3c5d853d..6586b36968aa 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -61,7 +61,6 @@ ./programs/command-not-found/command-not-found.nix ./programs/dconf.nix ./programs/environment.nix - ./programs/info.nix ./programs/ibus.nix ./programs/kbdlight.nix ./programs/light.nix diff --git a/nixos/modules/programs/info.nix b/nixos/modules/programs/info.nix deleted file mode 100644 index 253f9e877693..000000000000 --- a/nixos/modules/programs/info.nix +++ /dev/null @@ -1,38 +0,0 @@ -{config, pkgs, ...}: - -let - - texinfo = pkgs.texinfoInteractive; - - # Quick hack to make the `info' command work properly. `info' needs - # a "dir" file containing all the installed Info files, which we - # don't have (it would be impure to have a package installation - # update some global "dir" file). So this wrapper script around - # "info" builds a temporary "dir" file on the fly. This is a bit - # slow (on a cold cache) but not unacceptably so. - infoWrapper = pkgs.writeScriptBin "info" - '' - #! ${pkgs.stdenv.shell} - - dir=$(mktemp --tmpdir -d "info.dir.XXXXXX") - - if test -z "$dir"; then exit 1; fi - - trap 'rm -rf "$dir"' EXIT - - shopt -s nullglob - - for i in $(IFS=:; echo $INFOPATH); do - for j in $i/*.info; do - ${texinfo}/bin/install-info --quiet $j $dir/dir - done - done - - INFOPATH=$dir:$INFOPATH ${texinfo}/bin/info "$@" - ''; # */ - -in - -{ - environment.systemPackages = [ infoWrapper texinfo ]; -} |