makedepends=(git fish tar tmux vim zsh)

description="Command-line fuzzy finder"
url="https://github.com/junegunn/fzf"

packager="Great-OS Team"
maintainer="Great-OS Team"

name=fzf
version=0.70.0
goversion=1.21.4

PKGMK_IGNORE_UNPACK=yes
PKGMK_KEEP_SOURCES="no"
source=(https://github.com/junegunn/fzf/archive/refs/tags/v${version}.tar.gz
        https://golang.org/dl/go$goversion.linux-amd64.tar.gz)

prepare() {
  tar -C $SRC -xf go$goversion.linux-amd64.tar.gz
  tar -C $SRC -xf v$version.tar.gz
}

build() {
  cd $name-$version

  sed -i 's/-w /-w -linkmode external /' Makefile

  export CGO_LDFLAGS="${LDFLAGS}"
  export CGO_CFLAGS="${CFLAGS}"
  export CGO_CPPFLAGS="${CPPFLAGS}"
  export CGO_CXXFLAGS="${CXXFLAGS}"
  export GOFLAGS="-buildmode=pie -trimpath -mod=readonly -modcacherw"
  export PATH=$SRC/go/bin:$PATH
  export GOPATH=$SRC/go
  export GOCACHE=/tmp
  export FZF_VERSION="$version"
  export FZF_REVISION=d21d5c95

  make
}

package() {
  cd $name-$version

  ## Man page
  install -Dm644 man/man1/fzf.1 $PKG/usr/share/man/man1/fzf.1
  install -Dm644 man/man1/fzf-tmux.1 $PKG/usr/share/man/man1/fzf-tmux.1

  ## License
  install -Dm644 LICENSE $PKG/usr/share/licenses/fzf/LICENSE

  ## Binaries
  install -dm755 $PKG/usr/bin
  install -m755 bin/fzf-tmux $PKG/usr/bin/
  install -Dm755 target/fzf-linux_amd64 $PKG/usr/bin/fzf

  ## Completion and keybindings
  install -dm755 $PKG/usr/share/fzf
  install -m644 shell/*.bash shell/*.zsh $PKG/usr/share/fzf

  ## Fish keybindings
  install -Dm644 shell/key-bindings.fish $PKG/usr/share/fish/vendor_functions.d/fzf_key_bindings.fish

  ## Vim plugin
  install -Dm644 doc/fzf.txt $PKG/usr/share/vim/vimfiles/doc/fzf.txt
  install -Dm644 plugin/fzf.vim $PKG/usr/share/vim/vimfiles/plugin/fzf.vim
}
