# Maintainer: Duncan Tourolle <duncan@tourolle.paris>
#
# JellyTau — a cross-platform Jellyfin client (Tauri + SvelteKit).
#
# This PKGBUILD builds from the local source tree by default (see the `dev`
# convenience below), which is what scripts/build-arch.sh uses inside the Arch
# Docker stage. For AUR distribution, replace the `source=()` line with a release
# tarball/VCS URL and drop the local-copy prepare() step.

pkgname=jellytau
pkgver=0.0.18
pkgrel=1
pkgdesc="A cross-platform Jellyfin client"
arch=('x86_64')
url="https://gitea.tourolle.paris/dtourolle/jellytau"
license=('MIT')
# Runtime: libmpv for audio, webkit2gtk for the webview + HTML5 transcoded video.
depends=('webkit2gtk-4.1' 'mpv' 'gtk3' 'libayatana-appindicator')
makedepends=('rust' 'cargo' 'bun' 'nodejs' 'pkgconf' 'libsoup3')
options=('!strip' '!lto')

# Populated from the working tree by scripts/build-arch.sh (SRC env var).
_srcdir="${JELLYTAU_SRC:-$startdir/../..}"

build() {
  cd "$_srcdir"
  export CARGO_HOME="${CARGO_HOME:-$srcdir/cargo-home}"
  bun install --frozen-lockfile || bun install
  bun run build
  # Only the raw binary is needed; packaging is done in package() below so we
  # control the Arch filesystem layout ourselves rather than via tauri-bundler.
  (cd src-tauri && cargo build --release --locked)
}

package() {
  cd "$_srcdir"

  install -Dm755 "src-tauri/target/release/jellytau" \
    "$pkgdir/usr/bin/jellytau"

  # Desktop entry
  install -Dm644 "packaging/arch/jellytau.desktop" \
    "$pkgdir/usr/share/applications/jellytau.desktop"

  # Icons (hicolor)
  install -Dm644 "src-tauri/icons/32x32.png" \
    "$pkgdir/usr/share/icons/hicolor/32x32/apps/jellytau.png"
  install -Dm644 "src-tauri/icons/128x128.png" \
    "$pkgdir/usr/share/icons/hicolor/128x128/apps/jellytau.png"
  install -Dm644 "src-tauri/icons/128x128@2x.png" \
    "$pkgdir/usr/share/icons/hicolor/256x256/apps/jellytau.png"
}
