# Maintainer: PsychedelicShayna <Eternal0000FF@protonmail.com>
pkgname=oscr-ui
pkgver=11.0.1
pkgrel=1
pkgdesc="OSCR-UI - Open Source Combat Reader (GUI)"
arch=('x86_64')
url="https://github.com/STOCD/OSCR-UI"
license=('GPL-3.0')
depends=('python')
makedepends=('python' 'python-virtualenv' 'python-wheel' 'python-setuptools' 'git' 'unzip')
source=("https://github.com/STOCD/OSCR-UI/archive/refs/tags/v${pkgver}.tar.gz")
sha256sums=('ef4f6c68d99d476fb1e73756dec31235e8c65e2d8eb2b60ffe80bf9b863aebd6')

build() {
  cd "$srcdir"

  srcdir_name="${srcdir}/OSCR-UI-${pkgver#v}"
  cd "$srcdir_name" || return 1

  mkdir -p "$srcdir_name/build-venv"
  python -m venv build-venv
  source build-venv/bin/activate

  # Upgrade pip then install exact packages used in CI
  pip install --upgrade pip
  pip install -e ".[pyinst]"

  # Run pyinstaller from the venv
  # ensure we run pyinstaller in project root and output to dist/
  pyinstaller --name OSCR-UI --onedir main.py \
              --add-data "assets:assets" \
              --add-data "locales:locales" \
              --icon "assets/oscr_icon_small.png" \
              --windowed

  deactivate
}

package() {
  cd "$srcdir"

  srcdir_name="OSCR-UI-${pkgver#v}"

  install -d "${pkgdir}/opt/oscr-ui"
  install -d "${pkgdir}/usr/bin"
  install -d "${pkgdir}/usr/share/applications"
  install -d "${pkgdir}/usr/share/icons/hicolor/256x256/apps"

  cp -r "${srcdir}/${srcdir_name}/dist/OSCR-UI/_internal" "${pkgdir}/opt/oscr-ui/"
  cp  "${srcdir}/${srcdir_name}/dist/OSCR-UI/OSCR-UI" "${pkgdir}/opt/oscr-ui/"

  cat > "${pkgdir}/usr/bin/oscr-ui" <<'EOF'
#!/bin/sh
exec /opt/oscr-ui/OSCR-UI "$@"
EOF

  chmod 755 "${pkgdir}/usr/bin/oscr-ui"

  # Install desktop file
  cat > "${pkgdir}/usr/share/applications/oscr-ui.desktop" <<EOF
[Desktop Entry]
Name=OSCR-UI
Comment=Open Source Combatlog Reader
Exec=/opt/oscr-ui/OSCR-UI
Icon=/usr/share/icons/hicolor/256x256/apps/oscr-ui.png
Terminal=false
Type=Application
Categories=Utility;Scanning;GameTool;DataVisualization;
StartupWMClass=Open Source Combatlog Reader
EOF

  # Install an icon into the icon theme
  if [ -f "${pkgdir}/opt/oscr-ui/_internal/assets/oscr_icon_small.png" ]; then
    install -Dm644 "${pkgdir}/opt/oscr-ui/_internal/assets/oscr_icon_small.png" "${pkgdir}/usr/share/icons/hicolor/256x256/apps/oscr-ui.png"
  fi
}
