diff options
author | xiota | 2023-12-23 22:19:46 -0800 |
---|---|---|
committer | xiota | 2023-12-23 22:29:26 -0800 |
commit | 1c81ae846f7edf7aa69750435296709f03ea65c7 (patch) | |
tree | 4c1561a72988d876577a307004b6d3a15c80adb7 | |
parent | 23d5b62a880f8fd10642dce655bcbd999b2a6f58 (diff) | |
download | aur-1c81ae846f7edf7aa69750435296709f03ea65c7.tar.gz |
Bump to version 0.10.2
Add autoupdate capability
-rw-r--r-- | .SRCINFO | 8 | ||||
-rw-r--r-- | PKGBUILD | 137 |
2 files changed, 100 insertions, 45 deletions
@@ -1,15 +1,15 @@ pkgbase = logseq-desktop-bin pkgdesc = Privacy-first, open-source platform for knowledge sharing and management - pkgver = 0.10.1 + pkgver = 0.10.2 pkgrel = 1 url = https://github.com/logseq/logseq install = logseq-desktop.install arch = x86_64 - license = AGPL3 + license = AGPL-3.0-or-later makedepends = gendesk provides = logseq-desktop conflicts = logseq-desktop - source = https://github.com/logseq/logseq/releases/download/0.10.1/Logseq-linux-x64-0.10.1.zip - sha256sums = b67a2dff464610f2a64952eda858eaa7a4351edb6cd4076f63804d7f5b6b7423 + source = https://github.com/logseq/logseq/releases/download/0.10.2/Logseq-linux-x64-0.10.2.AppImage + sha256sums = b8aba5b33f23db5d79ee1566c88c1c5e2f3de679dda6f35828235de7f606b866 pkgname = logseq-desktop-bin @@ -1,52 +1,48 @@ # Maintainer: Xuanwo <xuanwo@archlinuxcn.org> # options -: ${_pkgtype:=bin} +: ${_autoupdate:=false} + +: ${_pkgtype:=-bin} # basic info _pkgname=logseq-desktop -pkgname="$_pkgname${_pkgtype:+-$_pkgtype}" -pkgver=0.10.1 +pkgname="$_pkgname${_pkgtype:-}" +pkgver=0.10.2 pkgrel=1 pkgdesc="Privacy-first, open-source platform for knowledge sharing and management" url="https://github.com/logseq/logseq" -license=('AGPL3') +license=('AGPL-3.0-or-later') arch=("x86_64") -makedepends=( - 'gendesk' -) - -provides=("$_pkgname") -conflicts=("$_pkgname") +# main package +_main_package() { + makedepends=( + 'gendesk' + ) -install="$_pkgname.install" + provides=("$_pkgname") + conflicts=("$_pkgname") -_pkgsrc="Logseq-linux-x64" -source=( - "$url/releases/download/$pkgver/$_pkgsrc-$pkgver.zip" -) -sha256sums=('b67a2dff464610f2a64952eda858eaa7a4351edb6cd4076f63804d7f5b6b7423') + install="$_pkgname.install" -prepare() { - cat <<'EOF' > "$_pkgname.sh" -#!/usr/bin/env sh -set -e + _pkgsrc="Logseq-linux-x64" + _pkgext="AppImage" + source=("$url/releases/download/$_pkgver/$_pkgsrc-$_pkgver.$_pkgext") + sha256sums=('b8aba5b33f23db5d79ee1566c88c1c5e2f3de679dda6f35828235de7f606b866') -APPDIR="/opt/logseq-desktop" -_ELECTRON="${APPDIR}/Logseq" + if [[ "${_autoupdate::1}" == "t" ]] ; then + sha256sums=('SKIP') + fi +} -_FLAGS_FILE="${XDG_CONFIG_HOME:-$HOME/.config}/logseq-flags.conf" -if [ -r "$_FLAGS_FILE" ]; then - _USER_FLAGS="$(cat "$_FLAGS_FILE")" -fi +# common functions +pkgver() { + printf '%s' "${_pkgver:?}" +} -if [[ $EUID -ne 0 ]] || [[ $ELECTRON_RUN_AS_NODE ]]; then - exec ${_ELECTRON} $_USER_FLAGS "$@" -else - exec ${_ELECTRON} --no-sandbox $_USER_FLAGS "$@" -fi -EOF +prepare() { + _gen_script local _gendesk_options=( -q -f -n @@ -63,21 +59,80 @@ EOF ) gendesk "${_gendesk_options[@]}" -} + # extract appimage + if [[ "${_pkgext::1}" == "A" ]] ; then + chmod +x "$_pkgsrc-$_pkgver.$_pkgext" + "./$_pkgsrc-$_pkgver.$_pkgext" --appimage-extract + ln -sf "squashfs-root" "$_pkgsrc" + fi +} package() { - # copy files - install -dm755 "$pkgdir/opt/$_pkgname" - cp -r "$srcdir/$_pkgsrc"/* "$pkgdir/opt/$_pkgname/" - # desktop file - install -Dm644 "$_pkgname.desktop" "$pkgdir/usr/share/applications/logseq-desktop.desktop" + install -Dm644 "$_pkgname.desktop" "$pkgdir/usr/share/applications/$_pkgname.desktop" # icons - install -Dm644 "$_pkgsrc/resources/app/icons/logseq.png" \ - -t "$pkgdir/usr/share/pixmaps/" + install -Dm644 "$_pkgsrc/usr/share/icons/hicolor/256x256/apps/Logseq.png" \ + -- "$pkgdir/usr/share/pixmaps/logseq.png" # script - install -Dm755 "logseq-desktop.sh" "$pkgdir/usr/bin/logseq" + install -Dm755 "$_pkgname.sh" "$pkgdir/usr/bin/logseq" + + # remove unneeded + rm -- "$_pkgsrc/AppRun" + rm -- "$_pkgsrc/Logseq.desktop" + rm -- "$_pkgsrc/Logseq.png" + + # package files + install -dm755 "$pkgdir/usr/lib/$_pkgname" + cp --reflink=auto -r "$srcdir/$_pkgsrc"/* "$pkgdir/usr/lib/$_pkgname/" } + +# other functions +_gen_script() { + cat <<'EOF' > "$_pkgname.sh" +#!/usr/bin/env sh +set -e + +APPDIR="/opt/logseq-desktop" +_ELECTRON="${APPDIR}/Logseq" + +_FLAGS_FILE="${XDG_CONFIG_HOME:-$HOME/.config}/logseq-flags.conf" +if [ -r "$_FLAGS_FILE" ]; then + _USER_FLAGS="$(cat "$_FLAGS_FILE")" +fi + +if [[ $EUID -ne 0 ]] || [[ $ELECTRON_RUN_AS_NODE ]]; then + exec ${_ELECTRON} $_USER_FLAGS "$@" +else + exec ${_ELECTRON} --no-sandbox $_USER_FLAGS "$@" +fi +EOF +} + +_update_version() { + : ${_pkgver:=$pkgver} + + if [[ "${_autoupdate::1}" != "t" ]] ; then + return + fi + + _response=$(curl -Ssf "$url/releases.atom") + + _pkgver_new=$( + printf '%s' "$_response" \ + | grep '/releases/tag/' \ + | sed -E 's@^.*/releases/tag/(.*)".*$@\1@' \ + | grep -Ev '[a-z]{2}' | sort -V | tail -1 + ) + + # update _pkgver + if [ "$_pkgver" != "${_pkgver_new:?}" ] ; then + _pkgver="${_pkgver_new:?}" + fi +} + +# execute +_update_version +_main_package |