# Maintainer: Nils Pukropp <contact@narl.io>
#
# Local-build PKGBUILD. Builds the proton-drive-linux workspace from the
# checkout this file lives in: this is NOT a source-fetch package, it compiles
# the working tree in place. The Proton SDK is unpublished and comes from its
# GitHub repo (pinned by Cargo.lock), so the build needs network access — no
# sibling checkout required any more.
#
# Build + install:   cd packaging && makepkg -fi

pkgname=proton-drive-linux
pkgver=3.1.1
pkgrel=1
pkgdesc="Unofficial Proton Drive client for Linux: files-on-demand FUSE mount, CLI, GTK4 app + tray"
arch=('x86_64')
url="https://proton-drive.narl.io"
license=('MIT')
depends=('fuse3' 'gtk4' 'libadwaita' 'webkitgtk-6.0' 'perl-image-exiftool')
makedepends=('cargo' 'git' 'gettext')
provides=('pdfs')
# Files-on-demand mount + keyring need these at runtime.
optdepends=('gnome-keyring: credential storage via Secret Service'
            'ffmpeg: video thumbnails'
            'iso-codes: country names in your language under Places'
            'xdg-utils: "Open folder" action from the tray'
            'fzf: live search-as-you-type launcher (pdfs-prompt --fzf)'
            'foot: terminal for pdfs-prompt --fzf started from a keybinding')
options=('!lto' '!debug')

# Built in place from the checkout; nothing to fetch or checksum.
source=()
sha256sums=()

# Absolute path to the workspace root (packaging/ lives directly under it).
_workspace="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"

pkgver() {
  cd "$_workspace"
  local v
  v=$(grep -m1 '^version' Cargo.toml | cut -d'"' -f2)
  printf '%s' "${v:-0.1.0}"
}

build() {
  cd "$_workspace"
  export RUSTUP_TOOLCHAIN=stable
  export CARGO_TARGET_DIR="$_workspace/target"
  # `--locked` not `--frozen`: the lock is authoritative, but cargo must still be
  # allowed to fetch the git-sourced SDK.
  cargo build --release --locked \
    --bin pdfs \
    --bin pdfs-tray \
    --bin pdfs-app \
    --bin pdfs-prompt
}

package() {
  cd "$_workspace"
  local rel="target/release"

  install -Dm755 "$rel/pdfs"      "$pkgdir/usr/bin/pdfs"
  install -Dm755 "$rel/pdfs-tray" "$pkgdir/usr/bin/pdfs-tray"
  install -Dm755 "$rel/pdfs-app"  "$pkgdir/usr/bin/pdfs-app"
  install -Dm755 "$rel/pdfs-prompt" "$pkgdir/usr/bin/pdfs-prompt"

  install -Dm644 "packaging/io.narl.proton-drive-linux.desktop" \
    "$pkgdir/usr/share/applications/io.narl.proton-drive-linux.desktop"
  install -Dm644 "packaging/io.narl.proton-drive-linux-tray.desktop" \
    "$pkgdir/etc/xdg/autostart/io.narl.proton-drive-linux-tray.desktop"
  install -Dm644 "packaging/io.narl.proton-drive-linux.svg" \
    "$pkgdir/usr/share/icons/hicolor/scalable/apps/io.narl.proton-drive-linux.svg"

  # systemd user service that runs the auto-mount daemon. Enabled per-user by
  # the GUI on login (`systemctl --user enable --now proton-drive.service`).
  install -Dm644 "packaging/proton-drive.service" \
    "$pkgdir/usr/lib/systemd/user/proton-drive.service"

  # Translations: compiled from po/ into /usr/share/locale.
  po/build.sh "$pkgdir/usr/share/locale"

  install -Dm644 "LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}
