summary refs log tree commit diff
path: root/modules/programs/info.nix
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2009-05-29 13:29:49 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2009-05-29 13:29:49 +0000
commit81d8c2e1c8d4c32f2485e24b286cca67cc66e1b0 (patch)
treec5cc73c55c9c5e41282e10e352ad00bb664638f3 /modules/programs/info.nix
parent548fb6a1a589d98d61bbb42750fcaba500be566b (diff)
downloadnixpkgs-81d8c2e1c8d4c32f2485e24b286cca67cc66e1b0.tar
nixpkgs-81d8c2e1c8d4c32f2485e24b286cca67cc66e1b0.tar.gz
nixpkgs-81d8c2e1c8d4c32f2485e24b286cca67cc66e1b0.tar.bz2
nixpkgs-81d8c2e1c8d4c32f2485e24b286cca67cc66e1b0.tar.lz
nixpkgs-81d8c2e1c8d4c32f2485e24b286cca67cc66e1b0.tar.xz
nixpkgs-81d8c2e1c8d4c32f2485e24b286cca67cc66e1b0.tar.zst
nixpkgs-81d8c2e1c8d4c32f2485e24b286cca67cc66e1b0.zip
* Move the info wrapper into a module.
svn path=/nixos/branches/modular-nixos/; revision=15792
Diffstat (limited to 'modules/programs/info.nix')
-rw-r--r--modules/programs/info.nix36
1 files changed, 36 insertions, 0 deletions
diff --git a/modules/programs/info.nix b/modules/programs/info.nix
new file mode 100644
index 00000000000..e3b8025f933
--- /dev/null
+++ b/modules/programs/info.nix
@@ -0,0 +1,36 @@
+{config, pkgs, ...}:
+
+let
+
+  # 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
+              ${pkgs.texinfo}/bin/install-info --quiet $j $dir/dir
+          done
+      done
+
+      INFOPATH=$dir:$INFOPATH ${pkgs.texinfo}/bin/info "$@"
+    ''; # */
+
+in 
+
+{
+  environment.systemPackages = [infoWrapper];
+}