# Maintainer : Christian Rebischke <chris.rebischke@archlinux.org>

pkgname=traefik
pkgver=2.3.1
pkgrel=1
pkgdesc="Modern reverse proxy written in Go"
arch=('x86_64')
url="https://containo.us/traefik/"
license=('MIT')
makedepends=('go' 'go-bindata-hashicorp' 'patch')
depends=('glibc')
backup=('etc/traefik/traefik.toml'
  'etc/traefik/traefik.yaml'
  'etc/traefik/traefik.yml')
source=("${pkgname}-${pkgver}.tar.gz::https://github.com/containous/traefik/releases/download/v${pkgver}/traefik-v${pkgver}.src.tar.gz"
  'traefik.service'
  'traefik.sysusers')
noextract=("${pkgname}-${pkgver}.tar.gz")
sha512sums=('780b39c94544b36159fdd6753f384bedde4bdd4ded1209838a2bf6c8643f32048daa695f6a873161a8ed5aecf9b63046fd9e7166edfa1d076790e51ac3b032c5'
            '25ab1113bb69936c443fe49d5d3da7d39171fc82e8fa06f46ed4e2dfcaa89685d50ca50b58c32215852d79e5c8d4736a287c15b75420c78a853c51502cb2641a'
            '5fecfed5df77bf28c2c976ebaebedb030904d41509e740821140a4889bda20327f416e78f8d19b0ee78c8bc422d1907ce05ef3562e4d3e36ddfbdbea5e860b2a')

prepare() {
  mkdir "${srcdir}/${pkgname}-${pkgver}"
  tar xfvz "${srcdir}/${pkgname}-${pkgver}.tar.gz" -C "${srcdir}/${pkgname}-${pkgver}"
}

build() {
  export CGO_CPPFLAGS="${CPPFLAGS}"
  export CGO_CFLAGS="${CFLAGS}"
  export CGO_CXXFLAGS="${CXXFLAGS}"
  export CGO_LDFLAGS="${LDFLAGS}"
  export GOFLAGS="-buildmode=pie -trimpath -mod=readonly -modcacherw"
  export GOLDFLAGS="-linkmode=external"
  cd "${srcdir}/${pkgname}-${pkgver}"
  go generate
  cd cmd/traefik
  go build
}

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

package() {
  cd "${srcdir}/${pkgname}-${pkgver}"
  install -Dm755 cmd/traefik/"${pkgname}" "${pkgdir}/usr/bin/${pkgname}"
  install -Dm644 LICENSE.md "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
  install -Dm644 "${srcdir}/traefik.service" "${pkgdir}/usr/lib/systemd/system/traefik.service"
  install -Dm644 "${srcdir}/traefik.sysusers" "${pkgdir}/usr/lib/sysusers.d/traefik.conf"
  # create empty acme.json file, otherwise the service file will fail
  mkdir -p "${pkgdir}/etc/traefik/"
  touch "${pkgdir}/etc/traefik/acme.json"
}