guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

05/05: gnu: bash-completion: Remove completions redundant with those of


From: Ludovic Courtès
Subject: 05/05: gnu: bash-completion: Remove completions redundant with those of util-linux.
Date: Sun, 19 Apr 2015 21:35:02 +0000

civodul pushed a commit to branch master
in repository guix.

commit b16b77905cd8c5a33dd5240d2e5c7ae0c4b2cdf6
Author: Ludovic Courtès <address@hidden>
Date:   Sun Apr 19 22:46:10 2015 +0200

    gnu: bash-completion: Remove completions redundant with those of util-linux.
    
    * gnu/packages/bash.scm (bash-completion)[arguments]: New field.
---
 gnu/packages/bash.scm |   24 ++++++++++++++++++++++++
 1 files changed, 24 insertions(+), 0 deletions(-)

diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm
index 02cb45c..45676f5 100644
--- a/gnu/packages/bash.scm
+++ b/gnu/packages/bash.scm
@@ -23,6 +23,7 @@
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages bison)
+  #:use-module (gnu packages linux)
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix utils)
@@ -247,6 +248,29 @@ without modification.")
               (patches
                (list (search-patch "bash-completion-directories.patch")))))
     (build-system gnu-build-system)
+    (native-inputs `(("util-linux" ,util-linux)))
+    (arguments
+     `(#:phases (alist-cons-after
+                 'install 'remove-redundant-completions
+                 (lambda* (#:key inputs outputs #:allow-other-keys)
+                   ;; Util-linux comes with a bunch of completion files for
+                   ;; its own commands which are more sophisticated and
+                   ;; up-to-date than those of bash-completion.  Remove those
+                   ;; from bash-completion.
+                   (let* ((out         (assoc-ref outputs "out"))
+                          (util-linux  (assoc-ref inputs "util-linux"))
+                          (completions (string-append out
+                                                      "/share/bash-completion"
+                                                      "/completions"))
+                          (already     (find-files (string-append util-linux
+                                                                  
"/etc/bash_completion.d"))))
+                     (with-directory-excursion completions
+                       (for-each (lambda (file)
+                                   (when (file-exists? file)
+                                     (delete-file file)))
+                                 (map basename already)))
+                     #t))
+                 %standard-phases)))
     (synopsis "Bash completions for common commands")
     (description
      "This package provides extensions that allow Bash to provide adapted



reply via email to

[Prev in Thread] Current Thread [Next in Thread]