Subject: Re: [PATCH v3] gnu: git: Install zsh completions and git-prompt.

From: Maxim Cournoyer <[email-masked]>
Date: Sun, 01 Oct 2023 23:34:56 -0400

Hi Liliana,

Liliana Marie Prikler <[email-masked]> writes:

> * gnu/packages/version-control.scm (git)[#:phases]<install-shell-completion>:
> Also install git-prompt and zsh _git site function.
> ---
>  gnu/packages/version-control.scm | 15 ++++++++++-----
>  1 file changed, 10 insertions(+), 5 deletions(-)
>
> diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
> index 9716a6f27a..d8c9bf4009 100644
> --- a/gnu/packages/version-control.scm
> +++ b/gnu/packages/version-control.scm
> @@ -448,12 +448,17 @@ (define-public git
>                       "DOCBOOK2X_TEXI=docbook2texi" "PERL_PATH=perl")))
>           (add-after 'install 'install-shell-completion
>             (lambda* (#:key outputs #:allow-other-keys)
> -             (let* ((out         (assoc-ref outputs "out"))
> -                    (completions (string-append out "/etc/bash_completion.d")))
> -               ;; TODO: Install the tcsh and zsh completions in the right place.
> -               (mkdir-p completions)
> +             (let* ((out  (assoc-ref outputs "out"))
> +                    (bash (string-append out "/etc/bash_completion.d"))
> +                    (zsh  (string-append out "/share/zsh/site-functions")))
> +               ;; TODO: Install the tcsh completions in the right place.
> +               (for-each mkdir-p (list bash zsh))
>                 (copy-file "contrib/completion/git-completion.bash"
> -                          (string-append completions "/git")))))
> +                          (string-append bash "/git"))
> +               (copy-file "contrib/completion/git-prompt.sh"
> +                          (string-append out "/bin/git-prompt"))
> +               (copy-file "contrib/completion/git-completion.zsh"
> +                          (string-append zsh "/_git")))))
>           (add-after 'install 'install-credential-netrc
>             (lambda* (#:key outputs #:allow-other-keys)
>               (let* ((netrc (assoc-ref outputs "credential-netrc")))

Sorry if my previous reply was not clear, but with your clarifications I
think it'd be best to keep the 'contrib' output, perhaps documenting in
the description that it contains the 'git-prompt' command as well as
completions for Zsh?

-- 
Thanks,
Maxim