# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4

PortSystem          1.0
PortGroup           golang 1.0

go.setup            github.com/junegunn/fzf 0.61.0 v
github.tarball_from archive
revision            0

description         A command-line fuzzy finder written in Go

long_description    {*}${description}

categories          sysutils
installs_libs       no
license             MIT
maintainers         {isi.edu:calvin @cardi} \
                    {gmail.com:herby.gillot @herbygillot} \
                    openmaintainer

checksums           ${distname}${extract.suffix} \
                        rmd160  fc59e5d19e589710b6774df2db3bca866131fe60 \
                        sha256  5d72cdf708c6adc240b3b43dfecd218cf4703ea609422fb4d62812e9f79f0a12 \
                        size    330880

go.vendors          golang.org/x/text \
                        lock    v0.21.0 \
                        rmd160  0a0d95c777a2df3108c79f5a23de3c226ad84d06 \
                        sha256  de16b0463799b320acfa2707e154091015d4b25dbaae866a8fc9bf2f72d67b5c \
                        size    8976785 \
                    golang.org/x/term \
                        lock    v0.29.0 \
                        rmd160  8897b8f4c7a32f6801b376eab03bc4d98970bb45 \
                        sha256  584aae20390fd14d70c64dfa2c4a35ee53b53526fd2175f02177cd391d8733ef \
                        size    14690 \
                    golang.org/x/sys \
                        lock    v0.30.0 \
                        rmd160  4cd711df5da2e159b6efbb7fa42ae0a3a3f6eb53 \
                        sha256  76cfe40018bfa5418c1d19d47d8353c3375594013e2b2feea49f06018d2a3102 \
                        size    1523466 \
                    github.com/rivo/uniseg \
                        lock    v0.4.7 \
                        rmd160  a9056dc9a2a80aa9c46d0ff9e54f9e2e5a498c41 \
                        sha256  abc6a2f17b64b34b8a0c56eb9d0b53886ebbe0c88d467755c09c7fa696a16677 \
                        size    458166 \
                    github.com/mattn/go-runewidth \
                        lock    v0.0.16 \
                        rmd160  297825c4365b5f723ae485e726259ebb620ecd66 \
                        sha256  6c9e81a6b46220612b97ebc35e8d29d1907fd225a9ce3e40b7cebd64cc58d09c \
                        size    18496 \
                    github.com/mattn/go-isatty \
                        lock    v0.0.20 \
                        rmd160  ef20ccdf87de8b704c0c7118625b2beb31d8f1b4 \
                        sha256  397549e98cf5d40df585f31dc7902f017c37be88c64311dd2b4aeccab4009949 \
                        size    4717 \
                    github.com/lucasb-eyer/go-colorful \
                        lock    v1.2.0 \
                        rmd160  a4183d0625e6c94474942cdc544c1061d35c4e34 \
                        sha256  fbad1aade4444bf51409f5b6a008cc14c7a7cdd1af856841fc1170605fae3914 \
                        size    970841 \
                    github.com/junegunn/go-shellwords \
                        lock    2aa3b3277741 \
                        rmd160  e485926aae7afe9be61cd23728b7483a51459d95 \
                        sha256  37c95a7a5fd64ef3baa539e03efe1334e7cb3e2d75297ddc11a49da39c1a5e37 \
                        size    6627 \
                    github.com/gdamore/tcell \
                        lock    v2.8.1 \
                        rmd160  0fbf5bc67e01706b0fca0930090d9e0fab35eec6 \
                        sha256  088141739e49263b0e44b18b768a11b092281c4b54c443bdeaa122232b259d94 \
                        size    187858 \
                    github.com/gdamore/encoding \
                        lock    v1.0.1 \
                        rmd160  7e73cab014fe3647552b67678a397ba5ce2475e9 \
                        sha256  dc7a586abe34b2d9562ca2aed225a1db734cc8b548a89bb238e75251d9aa0344 \
                        size    14814 \
                    github.com/charlievieth/fastwalk \
                        lock    v1.0.10 \
                        rmd160  8b648335a5a833ab3b70496ecb171ab4a8396aed \
                        sha256  fa2569aa2046cd62c6dce835f2d75679086b69822048790497cf98c6f64d98c9 \
                        size    44324

# adds specific major.minor.patch version information
build.args-append   \
    "-ldflags \"-X main.version=${version} -X main.revision=MacPorts\""

destroot {
    # install fzf
    xinstall -d ${destroot}${prefix}/bin
    xinstall -m 0755 ${worksrcpath}/${name} ${destroot}${prefix}/bin/${name}
    # install fzf-tmux (has a failover if tmux isn't installed)
    xinstall -m 0755 ${worksrcpath}/bin/${name}-tmux \
        ${destroot}${prefix}/bin/${name}-tmux

    # install documentation
    xinstall -d -m 0755 ${destroot}${prefix}/share/doc/${name}
    xinstall -m 0644 -W ${worksrcpath} LICENSE README-VIM.md README.md \
        ${destroot}${prefix}/share/doc/${name}

    # install man pages
    xinstall -d -m 0755 ${destroot}${prefix}/share/man/man1
    xinstall -m 0644 {*}[glob ${worksrcpath}/man/man1/*.1] \
        ${destroot}${prefix}/share/man/man1/

    # shell completion and key binding files
    xinstall -d ${destroot}${prefix}/share/fzf/shell/
    xinstall -m 0644 {*}[glob ${worksrcpath}/shell/*] \
        ${destroot}${prefix}/share/fzf/shell/

    # fzf.vim plugin
    xinstall -d ${destroot}${prefix}/share/fzf/vim/doc/
    xinstall -m 0644 ${worksrcpath}/doc/${name}.txt \
        ${destroot}${prefix}/share/fzf/vim/doc/${name}.txt
    xinstall -d ${destroot}${prefix}/share/fzf/vim/plugin/
    xinstall -m 0644 ${worksrcpath}/plugin/${name}.vim \
        ${destroot}${prefix}/share/fzf/vim/plugin/${name}.vim
}

notes "
Bash
====

Append this line to ~/.bashrc to enable fzf keybindings for Bash:

    source ${prefix}/share/fzf/shell/key-bindings.bash

Append this line to ~/.bashrc to enable fuzzy auto-completion for Bash:

    source ${prefix}/share/fzf/shell/completion.bash


Zsh
===

Append this line to ~/.zshrc to enable fzf keybindings for Zsh:

    source ${prefix}/share/fzf/shell/key-bindings.zsh

Append this line to ~/.zshrc to enable fuzzy auto-completion for Zsh:

    source ${prefix}/share/fzf/shell/completion.zsh


Fish
====

To enable fzf keybindings for fish, append this line to
~/.config/fish/config.fish:

    source ${prefix}/share/fzf/shell/key-bindings.fish

and add the following to ~/.config/fish/functions/fish_user_key_bindings.fish:

    function fish_user_key_bindings
        fzf_key_bindings
    end


Vim
===

The Vim plugin is located in ${prefix}/share/fzf/vim.

Enable the Vim plugin by adding the following to your Vim configuration
file (default: ~/.vimrc):

    set rtp+=${prefix}/share/fzf/vim

Documentation for fzf and the Vim plugin is located in
${prefix}/share/doc/fzf.
"