(address . guix-patches@gnu.org)
* gnu/packages/version-control.scm (git)[outputs]: Add “completion”.
[#:phases]: Add ‘install-completion’.
---
gnu/packages/version-control.scm | 15 +++++++++++++++
1 file changed, 15 insertions(+)
Toggle diff (38 lines)
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 9716a6f27a..54b2ed74fb 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -303,6 +303,7 @@ (define-public git
"credential-netrc" ; git-credential-netrc
"credential-libsecret" ; git-credential-libsecret
"subtree" ; git-subtree
+ "completion" ; git-completion and git-prompt
"gui")) ; gitk, git gui
(arguments
`(#:make-flags `("V=1" ;more verbose compilation
@@ -482,6 +483,20 @@ (define-public git
(string-append subtree "/bin"))
(install-file "contrib/subtree/git-subtree.1"
(string-append subtree "/share/man/man1")))))
+ (add-after 'install 'install-completion
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((completion (assoc-ref outputs "completion")))
+ (define (install-as file storename)
+ (let ((storename (string-append completion storename)))
+ (mkdir-p (dirname storename))
+ (copy-file file storename)))
+ (with-directory-excursion "contrib/completion"
+ (for-each (cut apply install-as <>)
+ `(("git-prompt.sh" "/bin/git-prompt")
+ ("git-completion.bash"
+ "/share/bash-completion/completions/_git")
+ ("git-completion.zsh"
+ "/share/zsh/site-functions/_git")))))))
(add-after 'install 'restore-sample-hooks-shebang
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
base-commit: 4f35ff1275e05be31f5d41464ccf147e9dbfd016
prerequisite-patch-id: ee5d7299c5790d77e0d409f34165063fcff10a8b
--
2.41.0