summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 3729dc072d7249cf3c951b9e7e931e23fd781090 (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
# Maintainer: thynkon <thynkon at protonmail dot com>

pkgname=joplin-appimage
pkgver=3.5.13
pkgrel=1
pkgdesc="The latest stable AppImage of Joplin - a cross-platform note taking and to-do app"
arch=('x86_64')
url="https://github.com/laurent22/joplin"
license=('MIT')
conflicts=('joplin-desktop')
depends=('fuse2')
options=(!strip)
source=(
  ${url}/releases/download/v${pkgver}/Joplin-${pkgver}.AppImage
  ${url}/raw/v${pkgver}/LICENSE
)
sha512sums=(
  1a58654f505e8e9adf1a8bc3eaff00afc3619564ffd6eb9c403b5b9bd64c93163485ae7ed68fd1492b372d0d9c75c5bb786b39fe5a60b8cecb0cad0ec16c3a5a
  SKIP
)
_filename="Joplin-${pkgver}.AppImage"
_squashfs_desktop_file="joplin.desktop"
_squashfs_icon_file="joplin.png"
_desktop_file="/usr/share/applications/joplin.desktop"
_appimage_name=$(echo "${_filename}" | sed -E 's/-[0-9]*.[0-9]*.[0-9]*//')
_install_path="/opt/appimages/${_appimage_name}"

package() {
  chmod +x "${_filename}"
  mkdir -p squashfs-root/usr/share/icons/hicolor/{72x72,16x16}/apps
  ./${_filename} --appimage-extract "usr/share/icons/hicolor/*/apps/${_squashfs_icon_file}" >/dev/null 2>&1
  ./${_filename} --appimage-extract "${_squashfs_desktop_file}" >/dev/null 2>&1
  sed -i -E "s|Exec=AppRun|Exec=${_install_path}|" "squashfs-root/${_squashfs_desktop_file}"
  sed -i -E "s|Icon=joplin|Icon=joplin|" "squashfs-root/${_squashfs_desktop_file}"

  # install icons
  install -dm755 "${pkgdir}/usr/share/icons"
  cp -dpr --no-preserve=ownership "squashfs-root/usr/share/icons" "${pkgdir}/usr/share"
  chmod -R 755 "${pkgdir}/usr/share/icons"
  find "${pkgdir}/usr/share/icons" -type f -name "${_squashfs_icon_file}" -exec chmod 644 {} \;

  # install .desktop file and image file
  # disable appimage desktop integration: https://github.com/AppImage/AppImageSpec/blob/master/draft.md#desktop-integration
  # disable AppimageLauncher integration prompt
  # https://github.com/TheAssassin/AppImageLauncher/issues/78#issuecomment-466390939
  sed -i -E "s|Exec=${_install_path}|Exec=env DESKTOPINTEGRATION=0 APPIMAGELAUNCHER_DISABLE=1 /usr/bin/joplin-desktop|" "squashfs-root/${_squashfs_desktop_file}"
  install -Dm644 "squashfs-root/${_squashfs_desktop_file}" "${pkgdir}/${_desktop_file}"
  install -Dm755 "${_filename}" "${pkgdir}/${_install_path}"
  mkdir "${pkgdir}/usr/bin/" && chmod 755 "${pkgdir}/usr/bin/"
  ln -s "${_install_path}" "${pkgdir}/usr/bin/joplin-desktop"

  # install license file
  install -Dm644 "LICENSE" "${pkgdir}/usr/share/licenses/joplin-appimage/LICENSE"
}