Files
spark-store/scripts/test-build.sh
T
xiyidaiwa b89c001401 refactor: 基于 upstream/Erotica 重新整合本地功能(来源选择/合并详情/计数/窗口/首页)
将本地在 upstream !408(已安装应用合并+统计)之上的后续改动重新整合到最新 upstream/Erotica:
- 已安装应用:卸载/打开按 APM/Spark 来源选择;计数总数=APM+Spark 包数(双来源计为独立包)
- 查看详情:已安装页复用所有应用页合并详情视图(单来源优先已装类型,双来源自动模式)
- 窗口:恢复阈值改为 1600x900,过大回退默认尺寸并居中,不自动最大化
- 首页推荐:致谢卡片移至其他内容下方,加大标题/卡片/致谢间距
- 隐藏排行榜/荣耀榜侧栏入口(代码保留,v-if=false)
- 新增 scripts/test-build.sh 测试打包脚本(版本末段+1 加 -test)并更新 AGENTS.md

冲突文件(index.ts/App.vue/InstalledAppsModal.vue)均取本地完整实现(为上游版本的超集)。
2026-08-03 11:06:28 +08:00

78 lines
2.8 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env bash
#
# 测试打包脚本
#
# 用途:本地测试打包时,自动将 deb 版本号(位于 debian/changelog 顶部)的
# 最后一段数字 +1,并追加 "-test" 标签,随后执行 dpkg-buildpackage。
#
# 示例:
# 当前 debian/changelog 顶部版本为 5.2.1.0
# 运行一次 -> 5.2.1.1-test(产物 spark-store_5.2.1.1-test_amd64.deb
# 再运行一次 -> 5.2.1.2-test
#
# 注意:
# - 此脚本仅用于本地测试,不会修改 package.jsonelectron-builder 的 dir 产物版本)。
# - 每次运行都会改写 debian/changelog,属于未跟踪的工作区改动,按需自行还原。
# - 如需恢复正式版本,将 debian/changelog 顶部版本改回即可。
set -euo pipefail
# 定位仓库根目录(脚本位于 scripts/ 下)
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "$ROOT"
CHANGELOG="debian/changelog"
if [ ! -f "$CHANGELOG" ]; then
echo "错误:未找到 $CHANGELOG" >&2
exit 1
fi
# 读取 changelog 首行并解析版本号,形如:
# spark-store (5.2.1.0) UNRELEASED; urgency=medium
# spark-store (5.2.1.1-test) UNRELEASED; urgency=medium
top_line="$(head -n1 "$CHANGELOG")"
# 提取括号内的版本号,避免使用 [[ =~ ]] 处理字面括号引发的语法问题
old_ver="$(printf '%s' "$top_line" | sed -E 's/^[^ ]+ \(([^)]+)\).*/\1/')"
if [[ -z "$old_ver" || "$old_ver" == "$top_line" ]]; then
echo "错误:无法从 $CHANGELOG 首行解析版本号: $top_line" >&2
exit 1
fi
# 分离上游版本与 Debian 修订号:
# Debian 版本格式为 "上游版本-修订号",修订号以最后一个 '-' 分隔。
# 上游版本只允许点号(如 5.2.1.0),'-test' 这类标签属于修订号,每次测试覆盖为固定 "test"。
if [[ "$old_ver" == *-* ]]; then
upstream="${old_ver%-*}"
else
upstream="$old_ver"
fi
# 上游版本形如 X.Y.Z.W,将最后一个点号分隔的数字段 +1
if [[ "$upstream" =~ ^(.*)\.([0-9]+)$ ]]; then
prefix="${BASH_REMATCH[1]}"
last="${BASH_REMATCH[2]}"
# 10# 强制按十进制解析,避免以 0 开头的段被当作八进制
new_last=$((10#$last + 1))
new_upstream="${prefix}.${new_last}"
else
echo "错误:上游版本号不符合 X.Y.Z.W 格式: $upstream" >&2
exit 1
fi
new_ver="${new_upstream}-test"
echo "版本号: ${old_ver} -> ${new_ver}"
# 仅替换首行括号内的版本号(转义点号,避免被正则当作任意字符)
old_ver_esc="${old_ver//./\\.}"
sed -i -E "1s/\\(${old_ver_esc}\\)/(${new_ver})/" "$CHANGELOG"
# Electron 二进制下载镜像(本机到 GitHub 不通,使用 npmmirror 镜像)
export ELECTRON_MIRROR="${ELECTRON_MIRROR:-https://registry.npmmirror.com/-/binary/electron/}"
echo "开始测试打包(版本 ${new_ver}..."
dpkg-buildpackage -us -uc -b
echo "完成。产物: ../spark-store_${new_ver}_amd64.deb"