diff --git a/plugins/homeagent-mail-bridge/build.sh b/plugins/homeagent-mail-bridge/build.sh index 9470673..29ae908 100755 --- a/plugins/homeagent-mail-bridge/build.sh +++ b/plugins/homeagent-mail-bridge/build.sh @@ -79,7 +79,22 @@ export GOFLAGS="${GOFLAGS:-} -modfile=$TMP_MOD" # 注意:这个插件**没有** `func main()`(入口由 hmapdev 生成/包装), # 所以 `go build ./...` 会报 "function main is undeclared" —— 那是正常的, # 不能用它来数 API 兼容性错误;真正的编译在 hmapdev 那一步。 +# 这条工具会**重写 plugin.json/plg.json**(实测:只把文件末尾的换行吃掉了)。 +# 构建不该把源码树弄脏 —— 在 electron 那边我们刚为同一形状定过规矩 +# (脏树产物不得自称发布候选)。所以:先记哈希,构建后若被改就还原并出声。 +MANIFESTS=(plugin.json plg.json) +SNAP_DIR="$(mktemp -d)" +for f in "${MANIFESTS[@]}"; do [[ -f "$f" ]] && cp "$f" "$SNAP_DIR/$f"; done hmapdev build || die "hmapdev build 失败(编译错误见上;它才是真正的编译入口)" +for f in "${MANIFESTS[@]}"; do + [[ -f "$SNAP_DIR/$f" ]] || continue + if ! cmp -s "$SNAP_DIR/$f" "$f"; then + cp "$SNAP_DIR/$f" "$f" + echo "[build] 注意:hmapdev 改写了 $f(已还原)—— 构建工具不该动受版本管理的源码;" + echo "[build] 否则每次构建都把树弄脏,而'脏树'在别的端已经是'不是发布候选'的判据了。" + fi +done +rm -rf "$SNAP_DIR" # ── 3. 产物自报身份 ───────────────────────────────────────────────── BIN="build/plugin.bin"