# Maintainer: Felitendo
# Contributor: Cosmo <cptncosmo@gmail.com>
# This PKGBUILD is updated automatically:
# https://git.felo.gg/Felitendo/PKGBUILDS

pkgname=fluxer-bin
# Upstream versions are date-based: this is the build of 2026-09-20 at
# 04:13:03 UTC. They sort above the 0.0.x scheme the package used before.
pkgver=2026.1004.13532
pkgrel=1
pkgdesc="Fluxer Desktop Application"
arch=('x86_64' 'aarch64')
url="https://fluxer.app"
license=('AGPL-3.0-only')
depends=('gtk3' 'nss' 'alsa-lib')
# /usr/bin/fluxer is also installed by fluxer-git on the AUR and by the
# "fluxer" package in upstream's own pacman repository:
# provides/conflicts makes that an either/or instead of a file conflict
provides=('fluxer')
conflicts=('fluxer')
options=('!strip')

source=("fluxer.desktop")
sha256sums=('981daa8015b823fef254bb8e79fe6b28f77dda02cdc374796443bd64f5041de1')

source_x86_64=("fluxer-${pkgver}-x64.tar.gz::https://api.fluxer.app/dl/desktop/stable/linux/x64/${pkgver}/tar_gz")
sha256sums_x86_64=('976ff888bdb78808ebb6b1d4cc68fd41e020ef95a37e6948d6cd561622875e9e')

source_aarch64=("fluxer-${pkgver}-arm64.tar.gz::https://api.fluxer.app/dl/desktop/stable/linux/arm64/${pkgver}/tar_gz")
sha256sums_aarch64=('cf61c60506fb3a9f9b389af27407cf893eb3133707a8caa8a0ef55902d629a4a')

package() {
    local _dir
    case "$CARCH" in
        x86_64)  _dir="Fluxer-${pkgver}-linux-x64" ;;
        aarch64) _dir="Fluxer-${pkgver}-linux-arm64" ;;
    esac
    # upstream has changed the archive layout before - fall back to a glob
    if [ ! -d "$srcdir/$_dir" ]; then
        _dir=$(cd "$srcdir" && ls -d [Ff]luxer*"${pkgver}"*/ 2>/dev/null | head -n1)
        _dir="${_dir%/}"
    fi
    if [ -z "$_dir" ] || [ ! -d "$srcdir/$_dir" ]; then
        echo "Error: could not find extracted directory for $CARCH" >&2
        ls -la "$srcdir" >&2
        return 1
    fi

    install -d "$pkgdir/opt/$pkgname"
    cp -a "$srcdir/$_dir/." "$pkgdir/opt/$pkgname/"

    install -d "$pkgdir/usr/bin"
    ln -s "/opt/$pkgname/fluxer" "$pkgdir/usr/bin/fluxer"

    install -Dm644 "$srcdir/fluxer.desktop" "$pkgdir/usr/share/applications/fluxer.desktop"

    # The bundle carries a full icon set, named after the size it holds.
    # The glob takes those and leaves icon.png and the tray templates, which
    # carry no size, alone.
    local _icon _size _found=0
    for _icon in "$srcdir/$_dir"/resources/icons/[0-9]*x[0-9]*.png; do
        [ -f "$_icon" ] || continue
        _size="$(basename "$_icon" .png)"
        install -Dm644 "$_icon" \
            "$pkgdir/usr/share/icons/hicolor/$_size/apps/fluxer.png"
        _found=1
    done
    # the .desktop entry points at this icon, so a silent miss would ship a
    # window with no icon at all
    if [ "$_found" -eq 0 ]; then
        echo "Error: no icons in $_dir/resources/icons" >&2
        ls -la "$srcdir/$_dir/resources" >&2
        return 1
    fi
}
