# Maintainer: Julien Virey <julien.virey@gmail.com>

pkgname=privatebin-cli
_bindate=$(date --rfc-3339=date)
pkgver=2.2.1
pkgrel=4
pkgdesc='A powerful CLI for creating and managing PrivateBin pastes with ease'
arch=(x86_64 aarch64)
url='https://github.com/gearnode/privatebin'
license=('ISC')
conflicts=("${pkgname}-bin")
depends=(glibc)
makedepends=('go' 'pandoc')
options=(!lto)
install="$pkgname.install"
source=("$pkgname-$pkgver.tar.gz::$url/archive/refs/tags/v$pkgver.tar.gz")
sha256sums=('cf11851f5e76d7b8d2b90dd662eb0a3dd03cd71f10cad01fb2f81ecf23d303b2')

prepare() {
  cd "${pkgname%-*}-$pkgver"

  # Man
  pandoc --standalone --to man -M footer=$pkgver doc/privatebin.1.md -o privatebin.1
  pandoc --standalone --to man -M footer=$pkgver doc/privatebin-create.1.md -o privatebin-create.1
  pandoc --standalone --to man -M footer=$pkgver doc/privatebin-show.1.md -o privatebin-show.1
  pandoc --standalone --to man -M footer=$pkgver doc/privatebin.conf.5.md -o privatebin.conf.5
}

build() {
  cd "${pkgname%-*}-$pkgver"
  export GOMODCACHE="${GOMODCACHE:-$srcdir/gomod}"
  export CGO_CPPFLAGS="${CPPFLAGS}"
  export CGO_CFLAGS="${CFLAGS}"
  export CGO_CXXFLAGS="${CXXFLAGS}"
  export CGO_LDFLAGS="${LDFLAGS}"
  export GOFLAGS="-buildmode=pie -trimpath -ldflags=-linkmode=external -mod=readonly -modcacherw"

  go build \
    -ldflags "-X 'main.version=$pkgver'
        -X 'main.commit=$pkgrel'
        -X 'main.date=$_bindate'" \
    -o "${pkgname%-*}" cmd/privatebin/main.go cmd/privatebin/cfg.go

  # Clean up deps
  go clean -modcache
}

package() {
  cd "${pkgname%-*}-$pkgver"
  install -Dm755 "${pkgname%-*}" "$pkgdir/usr/bin/${pkgname%-*}"
  install -Dm644 LICENSE.txt "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
  install -Dm644 README.md "$pkgdir/usr/share/doc/$pkgname/README.md"
  install -Dm644 CHANGELOG.md "$pkgdir/usr/share/doc/$pkgname/CHANGELOG.md"
  install -Dm644 privatebin.1 -t "$pkgdir"/usr/share/man/man1/
  install -Dm644 privatebin-create.1 -t "$pkgdir"/usr/share/man/man1/
  install -Dm644 privatebin-show.1 -t "$pkgdir"/usr/share/man/man1/
  install -Dm644 privatebin.conf.5 -t "$pkgdir"/usr/share/man/man5/
}
