diff options
-rw-r--r-- | 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 02cb45c955..45676f568b 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 |