gnu: Add fzf.
authorEuAndreh <eu@euandre.org>
Mon, 8 Feb 2021 17:08:27 +0000 (14:08 -0300)
committerLudovic Courtès <ludo@gnu.org>
Fri, 19 Mar 2021 21:13:51 +0000 (22:13 +0100)
* gnu/packages/terminals.scm (fzf): New variable, which inherits
  from the existing go-github-com-junegunn-fzf package, but also
  install other binary, and completion for direct usage.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
gnu/packages/terminals.scm

index f4c97e0..3fe5805 100644 (file)
@@ -824,6 +824,43 @@ programmer to write text-based user interfaces.")
 usable with any list--including files, command history, processes and more.")
     (license license:expat)))
 
+(define-public fzf
+  (package
+    (inherit go-github-com-junegunn-fzf)
+    (name "fzf")
+    (arguments
+     (ensure-keyword-arguments
+      (package-arguments go-github-com-junegunn-fzf)
+      `(#:phases
+        (modify-phases %standard-phases
+          (add-after 'install 'copy-binaries
+            (lambda* (#:key outputs #:allow-other-keys)
+              (let ((out (assoc-ref outputs "out")))
+                (with-directory-excursion "src/github.com/junegunn/fzf"
+                  (install-file "bin/fzf-tmux"
+                                (string-append out "/bin"))))))
+          (add-after 'copy-binaries 'wrap-programs
+            (lambda* (#:key outputs inputs #:allow-other-keys)
+              (let ((out (assoc-ref outputs "out"))
+                    (ncurses (assoc-ref inputs "ncurses")))
+                (wrap-program (string-append out "/bin/fzf-tmux")
+                  `("PATH" ":" prefix (,(string-append ncurses "/bin")))))))
+          (add-after 'install 'install-completions
+            (lambda* (#:key outputs #:allow-other-keys)
+              (let* ((out (assoc-ref outputs "out"))
+                     (bash-completion (string-append out "/etc/bash_completion.d"))
+                     (zsh-completion (string-append out "/share/zsh/site-functions")))
+                (with-directory-excursion "src/github.com/junegunn/fzf"
+                  (mkdir-p bash-completion)
+                  (copy-file "shell/completion.bash"
+                             (string-append bash-completion "/fzf"))
+                  (mkdir-p zsh-completion)
+                  (copy-file "shell/completion.zsh"
+                             (string-append zsh-completion "/_fzf"))))))))))
+    (inputs
+     `(,@(package-inputs go-github-com-junegunn-fzf)
+       ("ncurses" ,ncurses)))))
+
 (define-public go-github.com-howeyc-gopass
   (let ((commit "bf9dde6d0d2c004a008c27aaee91170c786f6db8")
         (revision "0"))