summary refs log tree commit diff
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2021-07-13 15:13:07 +0300
committerEfraim Flashner <efraim@flashner.co.il>2021-07-13 15:14:17 +0300
commit61a8c913685d0485369b0009cb2cc4dd764d7d4f (patch)
tree4e942643952bcb732e9d2b9f27356f794c2c50a7
parent3041eb3df3057cb39da2f5133906913e2ba7dd1c (diff)
downloadguix-61a8c913685d0485369b0009cb2cc4dd764d7d4f.tar.gz
gnu: hyperfine: Install completions.
* gnu/packages/rust-apps.scm (hyperfine)[arguments]: Add custom
'install-more phase to install manpage and shell completions.
-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 16044ef098..7aabc12876 100644
--- a/gnu/packages/rust-apps.scm
+++ b/gnu/packages/rust-apps.scm
@@ -393,6 +393,9 @@ characters, ASCII whitespace characters, other ASCII characters and non-ASCII.")
     (build-system cargo-build-system)
     (arguments
      `(#:rust ,rust-1.46
+       #:modules ((guix build cargo-build-system)
+                  (guix build utils)
+                  (srfi srfi-26))
        #:cargo-inputs
        (("rust-atty" ,rust-atty-0.2)
         ("rust-cfg-if" ,rust-cfg-if-0.1)
@@ -409,7 +412,26 @@ characters, ASCII whitespace characters, other ASCII characters and non-ASCII.")
         ("rust-version-check" ,rust-version-check-0.9)
         ("rust-winapi" ,rust-winapi-0.3))
        #:cargo-development-inputs
-       (("rust-approx" ,rust-approx-0.3))))
+       (("rust-approx" ,rust-approx-0.3))
+       #:phases
+       (modify-phases %standard-phases
+        (add-after 'install 'install-more
+          (lambda* (#:key outputs #:allow-other-keys)
+            (let* ((out   (assoc-ref outputs "out"))
+                   (share (string-append out "/share/"))
+                   (man   (string-append share "man/man1"))
+                   (bash  (string-append share "bash-completion/completions"))
+                   (fish  (string-append share "fish/vendor_completions.d"))
+                   (zsh   (string-append share "zsh/site-functions")))
+              (install-file "doc/hyperfine.1" man)
+              (for-each (cut install-file <> bash)
+                        (find-files "target/release/build" "^hyperfine.bash$"))
+              (rename-file (string-append bash "/hyperfine.bash")
+                           (string-append bash "/hyperfine"))
+              (for-each (cut install-file <> fish)
+                        (find-files "target/release/build" "^hyperfine.fish$"))
+              (for-each (cut install-file <> zsh)
+                        (find-files "target/release/build" "^_hyperfine$"))))))))
     (home-page "https://github.com/sharkdp/hyperfine")
     (synopsis "Command-line benchmarking tool")
     (description