# Maintainer: Markus Pesch <markus.pesch plus apps at cryptic.systems>

pkgname=shellyctl
pkgver=0.4.2 # renovate: datasource=github-releases depName=jcodybaker/shellyctl
pkgrel=3
pkgdesc="shellyctl is an unofficial command line client for the Shelly Gen2/3 API. "
arch=('armv7h' 'aarch64' 'x86_64')
url="https://github.com/jcodybaker/$pkgname"
license=('MIT')
makedepends=('go')

source=(
  "$url/archive/refs/tags/v$pkgver.zip"
)
sha512sums=('2c19275204461c0449f4e638cbde8722a0387b147eaa77e2091d160b8c1233d061170ff3600293d116d1740166dacac3cc3ce79549f4558ed8adc5eb45efe224')
b2sums=('a525fc326b8435c936798214911417cca29251062aa968753d0f2f68eee188e66bf5dca16489cb7fd51818389e931e3d9cdf67376968255ab008a602982845a0')

prepare() {
  cd "$pkgname-$pkgver"

  export GONOSUMDB="${GONOSUMDB}"
  export GOPATH="${srcdir}"
  export GOPROXY="${GOPROXY}"

  # INFO: Print all Go related environment variables for debugging purposes.
  env | sort | grep -E '^C?GO'

  go mod download -modcacherw
}

build() {
  cd "$pkgname-$pkgver"

  # https://wiki.archlinux.org/title/Go_package_guidelines
  export CGO_CPPFLAGS="${CPPFLAGS}"
  export CGO_CFLAGS="${CFLAGS}"
  export CGO_CXXFLAGS="${CXXFLAGS}"
  export CGO_LDFLAGS="${LDFLAGS}"
  export GOPATH="${srcdir}"
  export GOFLAGS="-buildmode=pie -trimpath -ldflags=-linkmode=external -mod=readonly -modcacherw"

  go build -o $pkgname .
}

check() {
  cd "$pkgname-$pkgver"
  go test ./...
}

package() {
  # binary
  install -D --mode 0755 --target-directory "$pkgdir/usr/bin" "$pkgname-$pkgver/$pkgname"

  # license
  install -D --mode 0644 --target-directory "$pkgdir/usr/share/licenses/$pkgname" "$pkgname-$pkgver/LICENSE.md"
}
