guix_mirror_bot pushed a commit to branch rust-team
in repository guix.

commit f341fe0a9b986861570aedd4db7e8f5e3669cc34
Author: Efraim Flashner <[email protected]>
AuthorDate: Thu Sep 17 10:26:56 2026 +0300

    gnu: maturin: Update building shell completions.
    
    * gnu/packages/build-tools.scm (maturin)[arguments]: Rewrite the phase
    to build the shell completions.
    
    Change-Id: I4df8058fb80ea9ae97c10e7374d233328b5307b0
---
 gnu/packages/build-tools.scm | 41 ++++++++++++++++-------------------------
 1 file changed, 16 insertions(+), 25 deletions(-)

diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
index 00c92efd595..034440db6e6 100644
--- a/gnu/packages/build-tools.scm
+++ b/gnu/packages/build-tools.scm
@@ -462,7 +462,8 @@ files and generates build instructions for the Ninja build 
system.")
      (list
       #:modules '((guix build cargo-build-system)
                   ((guix build pyproject-build-system) #:prefix py:)
-                  (guix build utils))
+                  (guix build utils)
+                  (ice-9 match))
       #:imported-modules `((guix build cargo-build-system)
                            (guix build cargo-utils)
                            ,@%pyproject-build-system-modules)
@@ -509,30 +510,20 @@ files and generates build instructions for the Ninja 
build system.")
                           (find-files (string-append #$output "/lib/" 
pyversion)
                                       "^maturin$")))))
           (add-after 'install 'install-completions
-            (lambda _
-              (let ((share (string-append #$output "/share"))
-                    (maturin (string-append #$output "/bin/maturin")))
-                ;; TODO? fig, powershell
-                (mkdir-p (string-append #$output "/etc/bash_completion.d"))
-                (with-output-to-file
-                    (string-append #$output "/etc/bash_completion.d/maturin")
-                  (lambda _ (invoke maturin "completions" "bash")))
-                (mkdir-p (string-append share "/fish/vendor_completions.d"))
-                (with-output-to-file
-                    (string-append share 
"/fish/vendor_completions.d/maturin.fish")
-                  (lambda _ (invoke maturin "completions" "fish")))
-                (mkdir-p (string-append share "/zsh/site-functions"))
-                (with-output-to-file
-                    (string-append share "/zsh/site-functions/_maturin")
-                  (lambda _ (invoke maturin "completions" "zsh")))
-                (mkdir-p (string-append share "/elvish/lib"))
-                (with-output-to-file
-                    (string-append share "/elvish/lib/maturin")
-                  (lambda _ (invoke maturin "completions" "elvish")))
-                (mkdir-p (string-append share "/nushell/vendor/autoload"))
-                (with-output-to-file
-                    (string-append share "/nushell/vendor/autoload/maturin")
-                  (lambda _ (invoke maturin "completions" "nushell")))))))))
+            (lambda* (#:key native-inputs #:allow-other-keys)
+              (for-each
+                (match-lambda
+                  ((shell . path)
+                   (mkdir-p (in-vicinity #$output (dirname path)))
+                   (let ((binary (in-vicinity #$output "bin/maturin")))
+                     (with-output-to-file (in-vicinity #$output path)
+                       (lambda _
+                         (invoke binary "completions" shell))))))
+                '(("bash" . "etc/bash_completion.d/maturin")
+                  ("elvish" . "share/elvish/lib/maturin")
+                  ("fish" . "fish/vendor_completions.d/maturin.fish")
+                  ("nushell" . "share/nushell/vendor/autoload/maturin")
+                  ("zsh" . "zsh/site-functions/_maturin"))))))))
     (propagated-inputs
      (list python-tomli))
     (inputs (append

Reply via email to