summaryrefslogtreecommitdiff
path: root/gnu/packages/rust-apps.scm
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2023-09-28 21:08:32 +0300
committerEfraim Flashner <efraim@flashner.co.il>2023-09-28 21:17:20 +0300
commit36094ba02106aac27c464a9ebb1b9d34f017315d (patch)
tree4a8c98956d9d57c8254dd782cf009aecfe334efb /gnu/packages/rust-apps.scm
parent5b1897134877330e645ca572b93a50bb26ffb500 (diff)
gnu: just: Install shell completions.
* gnu/packages/rust-apps.scm (just)[arguments]: Add a phase to install the shell completions.
Diffstat (limited to 'gnu/packages/rust-apps.scm')
-rw-r--r--gnu/packages/rust-apps.scm23
1 files changed, 22 insertions, 1 deletions
diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm
index 7a5760a396..894173b7dd 100644
--- a/gnu/packages/rust-apps.scm
+++ b/gnu/packages/rust-apps.scm
@@ -806,7 +806,28 @@ bar. It is also compatible with sway.")
(lambda* (#:key outputs #:allow-other-keys)
(install-file "man/just.1"
(string-append (assoc-ref outputs "out")
- "/share/man/man1")))))))
+ "/share/man/man1"))))
+ (add-after 'install 'install-completions
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (share (string-append out "/share"))
+ (just (string-append out "/bin/just")))
+ (mkdir-p (string-append share "/bash-completion/completions"))
+ (with-output-to-file
+ (string-append share "/bash-completion/completions/just")
+ (lambda _ (invoke just "--completions" "bash")))
+ (mkdir-p (string-append share "/fish/vendor_completions.d"))
+ (with-output-to-file
+ (string-append share "/fish/vendor_completions.d/just.fish")
+ (lambda _ (invoke just "--completions" "fish")))
+ (mkdir-p (string-append share "/zsh/site-functions"))
+ (with-output-to-file
+ (string-append share "/zsh/site-functions/_just")
+ (lambda _ (invoke just "--completions" "zsh")))
+ (mkdir-p (string-append share "/elvish/lib"))
+ (with-output-to-file
+ (string-append share "/elvish/lib/just")
+ (lambda _ (invoke just "--completions" "elvish")))))))))
(home-page "https://github.com/casey/just")
(synopsis "Just a command runner")
(description "This package provides @code{just}, a command runner.