# Maintainer: kpcyrd <kpcyrd[at]archlinux[dot]org>

pkgbase=rebuilderd
pkgname=(rebuilderd rebuilderd-tools)
pkgver=0.14.2
pkgrel=1
pkgdesc='Independent verification system of binary packages'
url='https://github.com/kpcyrd/rebuilderd'
arch=('x86_64')
license=('GPL3')
depends=('openssl' 'shared-mime-info' 'xz' 'libzstd.so')
makedepends=('cargo' 'sqlite' 'scdoc')
source=(https://github.com/kpcyrd/${pkgname}/archive/v${pkgver}/${pkgname}-${pkgver}.tar.gz
        https://github.com/kpcyrd/${pkgname}/releases/download/v${pkgver}/${pkgname}-${pkgver}.tar.gz.asc)
sha512sums=('190c9e4ee7043e886e10e1287daf4009fb61008f09b9cb3b4816755c3a3a890a9da595a01a3aee8f69f42ad5fc95498f9e1f78c74671ffe50ed3aa6bc5db4d8d'
            'SKIP')
b2sums=('f171dc2dcb17669ac5284a2e1204812a0811393be883e8aff76342538d45e6173630a487a088384ef543d583358e9e177dc1d20c4b8c3a76f0964ccef0269c2d'
        'SKIP')

validpgpkeys=("64B13F7117D6E07D661BBCE0FE763A64F5E54FD6")

prepare() {
  cd ${pkgbase}-${pkgver}
  cargo fetch --locked --target "$CARCH-unknown-linux-gnu"
}

build() {
  cd ${pkgbase}-${pkgver}
  cargo build --frozen --release --workspace
  make docs
}

check() {
  cd ${pkgbase}-${pkgver}
  cargo test --frozen --workspace
}

package_rebuilderd() {
  pkgdesc='Independent verification system of binary packages (server package)'
  depends=('rebuilderd-tools' 'sqlite' 'archlinux-repro')
  backup=('etc/rebuilderd.conf'
          'etc/rebuilderd-sync.conf'
          'etc/rebuilderd-worker.conf')

  cd ${pkgbase}-${pkgver}
  install -Dm 755 -t "${pkgdir}/usr/bin" \
    target/release/rebuilderd \
    target/release/rebuilderd-worker

  # install rebuilder scripts
  install -Dm 755 -t "${pkgdir}/usr/libexec/rebuilderd" \
    worker/rebuilder-*.sh

  # install config files
  install -Dm 644 -t "${pkgdir}/etc" \
    contrib/confs/rebuilderd-sync.conf
  install -Dm 640 -g 212 -t "${pkgdir}/etc" \
    contrib/confs/rebuilderd-worker.conf \
    contrib/confs/rebuilderd.conf

  # install systemd configs
  install -Dm 644 -t "${pkgdir}/usr/lib/systemd/system" \
    contrib/systemd/rebuilderd-sync@.service \
    contrib/systemd/rebuilderd-sync@.timer \
    contrib/systemd/rebuilderd-worker@.service \
    contrib/systemd/rebuilderd.service

  install -Dm 644 contrib/systemd/rebuilderd.sysusers "${pkgdir}/usr/lib/sysusers.d/rebuilderd.conf"
  install -Dm 644 contrib/systemd/rebuilderd.tmpfiles "${pkgdir}/usr/lib/tmpfiles.d/rebuilderd.conf"

  # install docs
  install -Dm 644 -t "${pkgdir}/usr/share/man/man1" \
    contrib/docs/rebuilderd.1 \
    contrib/docs/rebuilderd-worker.1
  install -Dm 644 -t "${pkgdir}/usr/share/man/man5" \
    contrib/docs/rebuilderd.conf.5 \
    contrib/docs/rebuilderd-sync.conf.5 \
    contrib/docs/rebuilderd-worker.conf.5
}

package_rebuilderd-tools() {
  pkgdesc='Independent verification system of binary packages (tools package)'

  cd ${pkgbase}-${pkgver}
  install -Dm 755 -t "${pkgdir}/usr/bin" \
    target/release/rebuildctl

  # install completions
  install -d "${pkgdir}/usr/share/bash-completion/completions" \
             "${pkgdir}/usr/share/zsh/site-functions" \
             "${pkgdir}/usr/share/fish/vendor_completions.d"
  "${pkgdir}/usr/bin/rebuildctl" completions bash > "${pkgdir}/usr/share/bash-completion/completions/rebuildctl"
  "${pkgdir}/usr/bin/rebuildctl" completions zsh > "${pkgdir}/usr/share/zsh/site-functions/_rebuildctl"
  "${pkgdir}/usr/bin/rebuildctl" completions fish > "${pkgdir}/usr/share/fish/vendor_completions.d/rebuildctl.fish"

  # install docs
  install -Dm 644 README.md -t "${pkgdir}/usr/share/doc/${pkgbase}"
  install -Dm 644 -t "${pkgdir}/usr/share/man/man1" \
    contrib/docs/rebuildctl.1
}

# vim: ts=2 sw=2 et:
