about summary refs log tree commit diff
path: root/pkgs/shells
diff options
context:
space:
mode:
authorPeter Simons <simons@cryp.to>2011-09-13 17:50:03 +0000
committerPeter Simons <simons@cryp.to>2011-09-13 17:50:03 +0000
commit9f20aa5df699f7e903551e0dedea82d947cf9a99 (patch)
tree28d31da5794c5e2ade191b70ea142ea7ec64333a /pkgs/shells
parent3c5ff4a11887d137740c4f419dfc916019078aed (diff)
bash: install extensive completion library in the interactive version
Add the command-line completion library to the "interactive" version of
bash. That code is *not* active by default. To enable it, run

 | . ${bash}/etc/bash_completion

in your ~/.bashrc. If you prefer to build bashInteractive without that
feature, use the following override in ~/.nixpkgs/config.nix to disable it:

 | {
 |   packageOverrides = pkgs:
 |   {
 |     bashInteractive = pkgs.bashInteractive.override {
 |       bashCompletion = null;
 |     };
 |   };
 | }

svn path=/nixpkgs/trunk/; revision=29244
Diffstat (limited to 'pkgs/shells')
-rw-r--r--pkgs/shells/bash/default.nix12
1 files changed, 8 insertions, 4 deletions
diff --git a/pkgs/shells/bash/default.nix b/pkgs/shells/bash/default.nix
index f29d4354a06ac..e289395bc995e 100644
--- a/pkgs/shells/bash/default.nix
+++ b/pkgs/shells/bash/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, readline ? null, interactive ? false, texinfo ? null, bison}:
+{stdenv, fetchurl, readline ? null, interactive ? false, texinfo ? null, bison, bashCompletion ? null}:
 
 assert interactive -> readline != null;
 
@@ -47,18 +47,22 @@ stdenv.mkDerivation rec {
   buildNativeInputs = [bison]
     ++ stdenv.lib.optional (texinfo != null) texinfo
     ++ stdenv.lib.optional interactive readline;
-   
+
   postInstall = ''
     # Add an `sh' -> `bash' symlink.
     ln -s bash "$out/bin/sh"
 
+  '' + (if interactive && bashCompletion != null then ''
+    ensureDir "$out/etc"
+    echo >"$out/etc/bash_completion" '. "${bashCompletion}/etc/bash_completion"'
+  '' else ''
     # Install the completion examples.
     ensureDir "$out/etc"
     cp -v "examples/complete/bash_completion" "$out/etc"
 
     ensureDir "$out/etc/bash_completion.d"
     cp -v "examples/complete/complete.gnu-longopt" "$out/etc/bash_completion.d"
-  '';
+  '');
 
   meta = {
     homepage = http://www.gnu.org/software/bash/;
@@ -79,7 +83,7 @@ stdenv.mkDerivation rec {
 
     license = "GPLv3+";
 
-    maintainers = [ stdenv.lib.maintainers.ludo ];
+    maintainers = [ stdenv.lib.maintainers.ludo stdenv.lib.maintainers.simons ];
   };
 
   passthru = {