# Maintainer: aheuwes
# Previous maintainers: mreschke, Didrole

pkgname=cato-client-bin
pkgver=5.7.0.5525
pkgrel=1
pkgdesc='VPN client from Cato Networks to connect to the Cato Cloud.'
arch=('x86_64')
url='https://clientdownload.catonetworks.com/'
license=('custom')
depends=('glibc' 'gcc-libs' 'zlib' 'ca-certificates-utils')
makedepends=('libarchive' 'curl')
conflicts=('cato-linux-client')
provides=('cato-linux-client')
install=cato-client-bin.install

_deb_url='https://clientdownload.catonetworks.com/public/clients/cato-client-install.deb'

source=(
  "cato-client-install.deb::${_deb_url}"
  cato-client-bin.sysusers
  cato-client-bin.tmpfiles
)
noextract=('cato-client-install.deb')
sha256sums=(
  'SKIP'
  '3c51ce0ebde44edf062e2c9db69c95949ee2031f4e85156f2f401d6e8767f704'
  'd381f7126126f45ca36e43bd33772bfa0aa6d9cbc9a720e2485fc6061cdd9435'
)

_fetch_deb() {
  curl -fsSL -o cato-client-install.deb "${_deb_url}"
}

pkgver() {
  cd "$srcdir"
  _fetch_deb
  bsdtar -xf cato-client-install.deb control.tar.xz
  bsdtar -xOf control.tar.xz control \
    | awk -F': ' '/^Version:/ { print $2 }' \
    | sed 's/-release$//'
}

prepare() {
  cd "$srcdir"
  _fetch_deb
  bsdtar -xf cato-client-install.deb
}

package() {
  bsdtar -xf "${srcdir}/data.tar.xz" -C "${pkgdir}/"

  # Debian layout -> Arch layout
  mv "${pkgdir}/lib/systemd" "${pkgdir}/usr/lib/"
  rmdir "${pkgdir}/lib/"

  if [[ -f "${pkgdir}/usr/sbin/cato-clientd" ]]; then
    install -Dm755 "${pkgdir}/usr/sbin/cato-clientd" "${pkgdir}/usr/bin/cato-clientd"
    rm -f "${pkgdir}/usr/sbin/cato-clientd"
  fi

  rmdir "${pkgdir}/usr/sbin" 2>/dev/null || true
  rmdir "${pkgdir}/usr/local/lib" 2>/dev/null || true

  # usr-merge safe paths in the unit file
  sed -i \
    -e 's|/usr/sbin/cato-clientd|/usr/bin/cato-clientd|g' \
    -e 's|WorkingDirectory=/usr/sbin/|WorkingDirectory=/usr/bin/|g' \
    "${pkgdir}/usr/lib/systemd/system/cato-client.service"

  # Arch trusts CAs from this path, not update-ca-certificates
  install -Dm644 \
    "${pkgdir}/usr/local/share/ca-certificates/CatoNetworksRootCA.crt" \
    "${pkgdir}/etc/ca-certificates/trust-source/anchors/CatoNetworksRootCA.crt"

  install -Dm644 "${srcdir}/cato-client-bin.sysusers" \
    "${pkgdir}/usr/lib/sysusers.d/cato-client-bin.conf"
  install -Dm644 "${srcdir}/cato-client-bin.tmpfiles" \
    "${pkgdir}/usr/lib/tmpfiles.d/cato-client-bin.conf"
}
