summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: d619c1a586e950ac158311dcc6e623da89d8968c (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
75
76
77
78
79
80
81
82
# Maintainer: lijiangang <lijiangang@example.com>

pkgname=clipshare-bin
pkgver=1.4.3
pkgrel=5
pkgdesc='剪贴板同步工具,支持跨平台使用,此版本在原作者基础上增加对wayland兼容性,x11没测试,如果用不了可以用作者原版,后续更新关注原作者github地址'
arch=('x86_64')
url='https://github.com/aa2013/ClipShare'
license=('GPL-3.0-only')
depends=(
  'git'
  'curl'
  'unzip'
  'xz'
  'zip'
  'clang'
  'cmake'
  'ninja'
  'pkgconf'
  'gtk3'
  'libkeybinder3'
  'libayatana-appindicator'
  'libayatana-indicator'
  'ayatana-ido'
  'libdbusmenu-glib'
  'libdbusmenu-gtk3'
  'libxtst'
  'wayland'
  'wayland-protocols'
)
optdepends=(
  'gnome-shell-extension-appindicator: tray icon support on GNOME'
)
provides=('clipshare')
conflicts=('clipshare')
options=('!strip')

_archive="ClipShare-${pkgver}-linux-x86_64.tar.gz"
_release_tag='v1.4.3-2'
_download_url='https://github.com/JianGangLi/ClipShare'

source=("${_archive}::${_download_url}/releases/download/${_release_tag}/${_archive}")
sha256sums=('21723b398e0fc1a048c2e88890146f86fe041c62863ed05382bd3465f424adbf')

package() {
  local appdir="${srcdir}/ClipShare-${pkgver}-linux-${CARCH}"
  if [[ ! -d "${appdir}" ]]; then
    appdir="$(find "${srcdir}" -maxdepth 1 -type d -name "ClipShare-*-linux-${CARCH}" -print -quit)"
  fi
  if [[ -z "${appdir}" || ! -x "${appdir}/clipshare" ]]; then
    echo "error: extracted ClipShare binary directory not found" >&2
    return 1
  fi
  local version_file="${appdir}/data/flutter_assets/version.json"
  if [[ ! -f "${version_file}" ]] || ! grep -q "\"version\":\"${pkgver}\"" "${version_file}"; then
    echo "error: extracted ClipShare binary version does not match pkgver=${pkgver}" >&2
    return 1
  fi

  install -d "${pkgdir}/opt/clipshare"
  cp -a "${appdir}/." "${pkgdir}/opt/clipshare/"

  install -d "${pkgdir}/usr/bin"
  ln -s /opt/clipshare/clipshare "${pkgdir}/usr/bin/clipshare"

  install -Dm644 \
    "${appdir}/data/flutter_assets/assets/images/logo/logo.png" \
    "${pkgdir}/usr/share/icons/hicolor/256x256/apps/clipshare.png"

  install -d "${pkgdir}/usr/share/applications"
  cat > "${pkgdir}/usr/share/applications/clipshare.desktop" <<DESKTOP
[Desktop Entry]
Type=Application
Name=ClipShare
Comment=Cross-platform clipboard sync
Exec=clipshare
Icon=clipshare
Terminal=false
Categories=Utility;
StartupNotify=true
DESKTOP
}