summary refs log tree commit diff
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2023-11-19 10:02:16 +0200
committerEfraim Flashner <efraim@flashner.co.il>2023-11-19 10:02:16 +0200
commit7c5d4031c9572e51f64ba82cc909aa2ffdeda47e (patch)
tree3f78aeaad38467e663fd7cfbbcc76194777f633a
parentd87ce1a336c24bdd7e1692d989a1d419e7410d23 (diff)
downloadguix-7c5d4031c9572e51f64ba82cc909aa2ffdeda47e.tar.gz
gnu: git-annex: Add shell completions.
* gnu/packages/haskell-apps.scm (git-annex)[arguments]: Rename
'install-manpages to 'install-more and install the shell completions.

Change-Id: I3c5707037ba9b3c3903dd37c334c1eb6dca929e2
-rw-r--r--gnu/packages/haskell-apps.scm23
1 files changed, 20 insertions, 3 deletions
diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm
index e265dc0e7b..ad8c2a0757 100644
--- a/gnu/packages/haskell-apps.scm
+++ b/gnu/packages/haskell-apps.scm
@@ -368,10 +368,27 @@ to @code{cabal repl}).")
              ;; Undo `patch-shell-for-tests'.
              (copy-file "/tmp/Shell.hs" "Utility/Shell.hs")
              (apply (assoc-ref %standard-phases 'build) args)))
-         (add-after 'install 'install-manpages
+         (add-after 'install 'install-more
            (lambda* (#:key outputs #:allow-other-keys)
-             (setenv "PREFIX" (assoc-ref outputs "out"))
-             (invoke "make" "install-mans")))
+             (let* ((out (assoc-ref outputs "out"))
+                    (bash (string-append out "/etc/bash_completions.d"))
+                    (fish (string-append out "/share/fish/vendor_completions.d"))
+                    (zsh (string-append out "/share/zsh/site-functions")))
+             (setenv "PREFIX" out)
+             (invoke "make" "install-mans")
+             (mkdir-p bash)
+             (copy-file "bash-completion.bash"
+                        (string-append bash "/git-annex"))
+             (mkdir-p fish)
+             (with-output-to-file (string-append fish "/git-annex.fish")
+               (lambda _
+                 (invoke (string-append out "/bin/git-annex")
+                         "--fish-completion-script" "git-annex")))
+             (mkdir-p zsh)
+             (with-output-to-file (string-append zsh "/_git-annex")
+               (lambda _
+                 (invoke (string-append out "/bin/git-annex")
+                         "--zsh-completion-script" "git-annex"))))))
          (add-after 'install 'install-symlinks
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))