BareGit
pkgname=overseer-git
pkgver=r1.1234567
pkgrel=1
pkgdesc="Self-hosted family information system (inventory, OIDC, htmx UI)."
arch=('x86_64')
url="https://git.xeno.darksair.org/overseer"
license=('unknown')
depends=('gcc-libs' 'glibc' 'openssl' 'sqlite' 'curl' 'zlib'
         'imagemagick' 'systemd-libs')
makedepends=('cmake' 'git' 'pkgconf')
backup=('etc/overseer.yaml')
source=("git+$url.git"
        "overseer.service"
        "overseer.sysusers"
        "overseer.tmpfiles"
        "overseer.yaml")
sha256sums=('SKIP'
            '08a501151e6d5369b057bf1626b8893805b717fcb22334a55e7c55f8d0fbaa4b'
            '25b75a75c4f94c6fc1aa20e8438786a8cf851a19cc09cbaa4ac64585cccb8451'
            '30f29d472e84c1238b717286af44b1d1ac1cf48c9a4cbd2533dac321a65256b7'
            '526b06d931f8a76d9bafd42482924e754f60aab2fa6b454a678f08ad96bb4df5')

pkgver() {
  cd "overseer"
  printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}

build() {
  cmake -B build -S "overseer" \
    -DCMAKE_BUILD_TYPE=Release \
    -DOVERSEER_BUILD_TEST=OFF
  cmake --build build -j "$(nproc)"
}

package() {
  install -Dm755 build/overseer "$pkgdir/usr/bin/overseer"

  install -Dm644 overseer.service  "$pkgdir/usr/lib/systemd/system/overseer.service"
  install -Dm644 overseer.sysusers "$pkgdir/usr/lib/sysusers.d/overseer.conf"
  install -Dm644 overseer.tmpfiles "$pkgdir/usr/lib/tmpfiles.d/overseer.conf"

  install -Dm640 overseer.yaml "$pkgdir/etc/overseer.yaml"

  cd "overseer"
  # Templates: <template-dir>/inventory/templates/*.inja — the service
  # passes --template-dir=/usr/share/overseer/modules so the layout
  # mirrors the source tree.
  install -d "$pkgdir/usr/share/overseer"
  cp -r src/overseer/modules "$pkgdir/usr/share/overseer/modules"
  cp -r src/static           "$pkgdir/usr/share/overseer/static"

  # Strip non-template sources that landed under modules/ (we only need
  # the .inja files at runtime).
  find "$pkgdir/usr/share/overseer/modules" \
    -type f ! -name '*.inja' -delete
  find "$pkgdir/usr/share/overseer/modules" -type d -empty -delete
}