From d532df65dd3cc0efefad31e0d9f31d42547d9dac Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 19 Jan 2009 12:34:14 +0000 Subject: [PATCH] * Quick hack to make the `info' command work properly by generating a "dir" file on the fly in a wrapper script. svn path=/nixos/trunk/; revision=13805 --- helpers/info-wrapper.nix | 29 +++++++++++++++++++++++++++++ system/system.nix | 1 + 2 files changed, 30 insertions(+) create mode 100644 helpers/info-wrapper.nix diff --git a/helpers/info-wrapper.nix b/helpers/info-wrapper.nix new file mode 100644 index 000000000000..0f482dd4c276 --- /dev/null +++ b/helpers/info-wrapper.nix @@ -0,0 +1,29 @@ +# 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. + +{bash, texinfo, writeScriptBin}: + +writeScriptBin "info" + '' + #! ${bash}/bin/sh + + 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 "$@" + '' diff --git a/system/system.nix b/system/system.nix index bbb7d83f5434..7d8149938447 100644 --- a/system/system.nix +++ b/system/system.nix @@ -226,6 +226,7 @@ rec { pkgs.usbutils pkgs.utillinux pkgs.wirelesstools + (import ../helpers/info-wrapper.nix {inherit (pkgs) bash texinfo writeScriptBin;}) ] ++ pkgs.lib.optional config.security.sudo.enable pkgs.sudo ++ pkgs.lib.optional config.services.atd.enable pkgs.at