summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 34f7777db4076f5e6653fcd6379cd9624ced883a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# Maintainer: wisdom <wisboynelson123@gmail.com>
#
# Build flags:
#   _USE_BUILDER=1  -> build with electron-builder (produces .pkg.tar.zst)
#   _USE_BUILDER=0  -> install directly from dist/ (faster, default)

pkgname=termcanvas
pkgver=0.39.8
pkgrel=1
pkgdesc="An infinite canvas desktop app for visually managing terminals"
arch=('x86_64')
url="https://github.com/blueberrycongee/termcanvas"
license=('MIT')
depends=('electron' 'libxss' 'nss' 'gtk3' 'libnotify' 'xdg-utils' 'alsa-lib' 'libpulse')
makedepends=('nodejs>=20' 'pnpm' 'git' 'python' 'gcc' 'make')
conflicts=("termcanvas-bin")
source=("${url}/archive/v${pkgver}.tar.gz"
        "termcanvas.desktop"
        "termcanvas.sh"
        "io.github.blueberrycongee.termcanvas.metainfo.xml")
sha256sums=('8b38cb6a105fb76f25ca80f433ad2b0af3533989c3571cfabeef8533d1447fbf'
            'SKIP'
            'SKIP'
            'SKIP')

_USE_BUILDER="${_USE_BUILDER:-0}"

prepare() {
  cd "${srcdir}/${pkgname}-${pkgver}"
  pnpm install --frozen-lockfile
}

build() {
  cd "${srcdir}/${pkgname}-${pkgver}"
  pnpm build

  if [ "${_USE_BUILDER}" = "1" ]; then
    pnpm exec electron-builder --linux pacman --publish never
  fi
}

package() {
  cd "${srcdir}/${pkgname}-${pkgver}"

  if [ "${_USE_BUILDER}" = "1" ]; then
    PKG_FILE="$(ls out/*.pkg.tar.zst 2>/dev/null | head -1)"
    if [ -n "${PKG_FILE}" ]; then
      tar -xaf "${PKG_FILE}" -C "${pkgdir}"
      return 0
    fi
  fi

  install -dm755 "${pkgdir}/opt/termcanvas"
  cp -r dist/* "${pkgdir}/opt/termcanvas/"
  cp -r dist-electron/* "${pkgdir}/opt/termcanvas/"

  install -dm755 "${pkgdir}/opt/termcanvas/cli"
  cp -r dist-cli/* "${pkgdir}/opt/termcanvas/cli/" 2>/dev/null || true

  install -dm755 "${pkgdir}/opt/termcanvas/skills"
  cp -r skills/* "${pkgdir}/opt/termcanvas/skills/" 2>/dev/null || true

  install -Dm644 "${srcdir}/${pkgname}-${pkgver}/build/icon.png" \
    "${pkgdir}/usr/share/icons/hicolor/256x256/apps/termcanvas.png"

  install -Dm644 "${srcdir}/termcanvas.desktop" \
    "${pkgdir}/usr/share/applications/termcanvas.desktop"

  install -Dm644 "${srcdir}/io.github.blueberrycongee.termcanvas.metainfo.xml" \
    "${pkgdir}/usr/share/metainfo/io.github.blueberrycongee.termcanvas.metainfo.xml"

  install -Dm755 "${srcdir}/termcanvas.sh" \
    "${pkgdir}/usr/bin/termcanvas"
}