# -*- 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.56.3 v
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  9e025e2d13a37c91a7d9eebe332c15f1c2ba0b58 \
                        sha256  64012612e6d34998a7f22905bd3a3b41913f24267fb65e647e425a879003276d \
                        size    300462

go.vendors          golang.org/x/text \
                        lock    v0.14.0 \
                        rmd160  e26a72d542901d19f6dde4e07746f72206fb8701 \
                        sha256  ef54709caaafdd8b27ce3d5f7c53408f11bc5fd1688c1c4f328de8ed268b3188 \
                        size    8972503 \
                    golang.org/x/term \
                        lock    v0.26.0 \
                        rmd160  6a2af6a4ef1cfc32a922ddc036377d557acd97cc \
                        sha256  3cb0c87d9d70e6274bfb3890144393798856b6ebb88f5741121f8a6b8d16d026 \
                        size    14689 \
                    golang.org/x/sys \
                        lock    v0.27.0 \
                        rmd160  b9752e2e71b6277ffb543a3b26cfad8531187da2 \
                        sha256  9eb9e93ce913a10bbdc29a3efb0bbf6e38603da3ed72103e8207b4a9f501b98f \
                        size    1518524 \
                    github.com/rivo/uniseg \
                        lock    v0.4.7 \
                        rmd160  a9056dc9a2a80aa9c46d0ff9e54f9e2e5a498c41 \
                        sha256  abc6a2f17b64b34b8a0c56eb9d0b53886ebbe0c88d467755c09c7fa696a16677 \
                        size    458166 \
                    github.com/mattn/go-runewidth \
                        lock    v0.0.15 \
                        rmd160  702d468077550681ac11c3c2f3f5c9f98a868798 \
                        sha256  a6b5f47ffe7329895a605c356ff806dfd50b536bbc87af77773e55ad6e52d2db \
                        size    18287 \
                    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    a62c48c52e97 \
                        rmd160  098d7f20ac43509284cffbf50d502297d9ccc3bc \
                        sha256  8a6156cbea170cceaae96159fe3c1e8be32f2a9c7c6cd2df8d5b20a6ee71b41a \
                        size    6642 \
                    github.com/gdamore/tcell \
                        lock    v2.7.4 \
                        rmd160  9c47c3776ddce4497bdf09b2045541aa28eacb2b \
                        sha256  d0278f45afc50b1067a8ea8f581289514d73275f11e6c866ca6f7cc34fa18f23 \
                        size    179213 \
                    github.com/gdamore/encoding \
                        lock    v1.0.0 \
                        rmd160  3ed8916f763a5b51db1bcc8bd3ad06cf3d12ec07 \
                        sha256  4f470c7308790bea8a526ea26cecbaa22345aad8dc566821cda6175b3d241ee1 \
                        size    10900 \
                    github.com/charlievieth/fastwalk \
                        lock    v1.0.9 \
                        rmd160  fd0986b551a7c5ddd097585dd9b2ad741021dc77 \
                        sha256  08e7ea91e27b471d7dfc6d3e3ab5399182323c61792833693816458f24d9aa63 \
                        size    43722

# 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.
"
