Files
Linux_post_install/apps/utilities/affine.sh
T
2026-08-03 02:08:58 -04:00

44 lines
1.4 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
source "$(dirname "$0")/../../lib/common.sh"
install_affine() {
command -v affine &>/dev/null && { log "affine already installed"; return 0; }
local appimage_url="https://github.com/toeverything/AFFiNE/releases/download/v0.26.3/affine-0.26.3-stable-linux-x64.appimage"
local icon_url="https://raw.githubusercontent.com/toeverything/AFFiNE/master/packages/frontend/apps/electron/resources/icons/icon.png"
spawn "Installing AFFiNE AppImage" bash -c "
mkdir -p /opt/affine
curl -fsSL '$appimage_url' -o /opt/affine/affine.AppImage
chmod +x /opt/affine/affine.AppImage
ln -sf /opt/affine/affine.AppImage /usr/local/bin/affine
"
spawn "Adding desktop entry" bash -c "
curl -fsSL '$icon_url' -o /opt/affine/icon.png
cat > /usr/share/applications/affine.desktop <<-EOF
[Desktop Entry]
Name=AFFiNE
Comment=Next-gen knowledge base
Exec=/opt/affine/affine.AppImage
Icon=/opt/affine/icon.png
Terminal=false
Type=Application
Categories=Office;Utility;
StartupNotify=false
EOF
"
}
uninstall_affine() {
command -v affine &>/dev/null || { log "affine not installed"; return 0; }
spawn "Removing AFFiNE" sudo rm -rf /opt/affine /usr/local/bin/affine /usr/share/applications/affine.desktop
}
case "${1:-}" in
uninstall) uninstall_affine ;;
*) install_affine ;;
esac