Files
shell-rs/packaging/linux/appimage.sh
Xuz f0690fe6b2 在线升级:后台检查、下载并在重启或退出时安装新版本,发布流水线与应用图标
- 新增 update 模块:从 dl.shellrs.com 取已签名的更新清单(minisign,签名绑定通道和版本),
  按大小和 SHA-256 校验安装包;下载可续传、可换镜像,走系统代理
- 按安装方式安装:macOS 整包交换并核对开发者签名,Windows 静默运行安装程序,Linux 覆盖 AppImage;
  开发构建和无法自更新的安装只提示前往下载页
- 设置新增「关于」:版本信息、检查更新、下载进度和「自动检查并下载更新」开关;
  新版本就绪后标题栏右上角提示,更新对话框写明重启会中断什么;退出时自动安装,新版本启动后提示已更新
- 数据库拒绝打开更新版本建的库,迁移已有的库之前先备份成 shellrs.db.v<旧版本>.bak
- 新增 release workflow 和 packaging 脚本:universal macOS 包签名公证、Inno Setup 安装程序、
  AppImage、上传 R2、生成并签名更新清单;新增 CHANGELOG.md
- 应用图标放在 assets/logo;开发模式下 macOS Dock 显示 logo,Windows exe 嵌入图标
- 修正 AppImage 里 shellrs 命令链接到临时挂载点;启动时刷新已安装但过期的 Agent skill
- 新增清单、验签、下载、各平台安装器和界面的单元测试与 UI 测试
2026-10-01 12:33:01 +08:00

41 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env bash
# Put a built `shellrs` binary into an AppImage.
#
# packaging/linux/appimage.sh <binary> <version> <out-dir>
#
# Needs appimagetool on the PATH (or APPIMAGETOOL), which uses the static
# type2 runtime: the AppImage runs without libfuse2, which Ubuntu 22.04 and
# later no longer install. The graphics stack (Vulkan, Mesa, Wayland, X) is
# the host's and is not bundled. The icon is assets/logo/shellrs.png.
set -euo pipefail
binary=$1
version=$2
out=$3
here=$(cd "$(dirname "$0")" && pwd)
root=$(cd "$here/../.." && pwd)
tool=${APPIMAGETOOL:-appimagetool}
work=$(mktemp -d)
appdir="$work/ShellRS.AppDir"
mkdir -p "$appdir/usr/bin"
cp "$binary" "$appdir/usr/bin/shellrs"
chmod 755 "$appdir/usr/bin/shellrs"
cp "$here/shellrs.desktop" "$appdir/shellrs.desktop"
icon="$root/assets/logo/shellrs.png"
if [ ! -f "$icon" ]; then
echo "error: $icon is missing; an AppImage needs an icon" >&2
exit 1
fi
cp "$icon" "$appdir/shellrs.png"
# The executable itself is the entry point; the restart after an update
# starts $APPIMAGE again, so nothing here needs to survive it.
ln -s usr/bin/shellrs "$appdir/AppRun"
mkdir -p "$out"
target="$out/ShellRS-$version-linux-x86_64.AppImage"
ARCH=x86_64 "$tool" --no-appstream "$appdir" "$target"
rm -rf "$work"
echo "$target"