BareGit
pkgname=overseer-git
pkgver=r1.1234567
pkgrel=1
pkgdesc="Self-hosted family information system (inventory, OIDC, htmx UI)."
arch=('x86_64')
url="https://github.com/MetroWind/home-info"
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'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP')

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

build() {
  cmake -B build -S "home-info" \
    -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 "home-info"
  # 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
}