summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2024-03-12 10:01:46 +0200
committerEfraim Flashner <efraim@flashner.co.il>2024-03-12 13:48:32 +0200
commit62d8b14e325880bb68fbc7dd69452c6cace1149f (patch)
tree5a717d10a14978de5cdacb99f28c782ddc1769c1 /gnu
parent4ef63d7ed0ae1ae29c97cb16f63c537c70473dcf (diff)
gnu: rust-bindgen-cli: Add shell completions.
* gnu/packages/rust-apps.scm (rust-bindgen-cli)[arguments]: Add a phase to install shell completions. Change-Id: Ia476d02a7c2d75518da2624b09b7091fafb70d8d
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/rust-apps.scm24
1 files changed, 23 insertions, 1 deletions
diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm
index 8785659777..d73bd1a030 100644
--- a/gnu/packages/rust-apps.scm
+++ b/gnu/packages/rust-apps.scm
@@ -1873,7 +1873,29 @@ rebase.")
(assoc-ref inputs "clang") "/lib")))
(install-file "target/release/bindgen" bin)
(wrap-program bindgen
- `("LIBCLANG_PATH" = (,llvm-dir)))))))))
+ `("LIBCLANG_PATH" = (,llvm-dir))))))
+ (add-after 'install 'install-completions
+ (lambda* (#:key native-inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (share (string-append out "/share"))
+ (bindgen (string-append out "/bin/bindgen")))
+ (mkdir-p (string-append share "/bash-completion/completions"))
+ (with-output-to-file
+ (string-append share "/bash-completion/completions/bindgen")
+ (lambda _ (invoke bindgen "--generate-shell-completions" "bash")))
+ (mkdir-p (string-append share "/fish/vendor_completions.d"))
+ (with-output-to-file
+ (string-append share "/fish/vendor_completions.d/bindgen.fish")
+ (lambda _ (invoke bindgen "--generate-shell-completions" "fish")))
+ (mkdir-p (string-append share "/zsh/site-functions"))
+ (with-output-to-file
+ (string-append share "/zsh/site-functions/_bindgen")
+ (lambda _ (invoke bindgen "--generate-shell-completions" "zsh")))
+ (mkdir-p (string-append share "/elvish/lib"))
+ (with-output-to-file
+ (string-append share "/elvish/lib/bindgen")
+ (lambda _
+ (invoke bindgen "--generate-shell-completions" "elvish")))))))))
(inputs (list bash-minimal clang))
(home-page "https://rust-lang.github.io/rust-bindgen/")
(synopsis "Generate Rust FFI bindings to C and C++ libraries")