~ruther/guix-local

b16b77905cd8c5a33dd5240d2e5c7ae0c4b2cdf6 — Ludovic Courtès 11 years ago ee85919
gnu: bash-completion: Remove completions redundant with those of util-linux.

* gnu/packages/bash.scm (bash-completion)[arguments]: New field.
1 files changed, 24 insertions(+), 0 deletions(-)

M gnu/packages/bash.scm
M gnu/packages/bash.scm => gnu/packages/bash.scm +24 -0
@@ 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