From 09769a0dd117b34be1f6427f4079bf5b008fb846 Mon Sep 17 00:00:00 2001 From: richblack Date: Fri, 18 Sep 2026 20:16:19 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9B=B2=E7=AB=AF=E7=92=B0=E5=A2=83=E7=94=A2?= =?UTF-8?q?=E7=89=A9=E6=8B=86=E6=88=90=E5=85=A9=E5=80=8B=E6=AA=94=EF=BC=9A?= =?UTF-8?q?=E8=AE=8A=E6=95=B8=E6=AA=94=E5=8F=AA=E6=9C=89=20KEY=3DVALUE?= =?UTF-8?q?=E3=80=81=E9=96=8B=E6=A9=9F=E8=85=B3=E6=9C=AC=E6=AA=94=E9=80=90?= =?UTF-8?q?=E4=BD=8D=E5=85=83=E7=B5=84=EF=BC=9Dcloud-setup-script.sh?= =?UTF-8?q?=EF=BC=88=EF=BC=8BREADME=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 2026-09-18 實撞:兩段同檔、「════」分隔線被一起貼進 Setup script 欄 ⇒ 雲端開機 exit 127, cloud-worker 每一趟在開機就死(cse_013LPaaD47m4arFzLjGvSZnN)。新增 V3(變數檔每行都是 KEY=VALUE)、 V4(開機腳本檔逐位元組相同);test-make-cloud-env.sh 15/15。 Co-Authored-By: Claude Opus 5 --- scripts/make-cloud-env.sh | 27 ++++++++++++++++----------- scripts/test-make-cloud-env.sh | 7 ++++++- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/scripts/make-cloud-env.sh b/scripts/make-cloud-env.sh index bb56ab8..32e92d9 100755 --- a/scripts/make-cloud-env.sh +++ b/scripts/make-cloud-env.sh @@ -143,13 +143,12 @@ SETUP="$(cd "$(dirname "$0")/.." && pwd)/docs/cloud-setup-script.sh" [ -f "$SETUP" ] || { echo "🔴 找不到 $SETUP" >&2; exit 1; } MISSING=() +# 🔴 兩個檔分開產(2026-09-18 實撞):原本兩段放同一檔、中間用「════」分隔, +# leo 把分隔線一起貼進 Setup script 欄 ⇒ 雲端開機 exit 127「'════…': command not found」, +# 每一趟 cloud-worker 在開機就死。⇒ 變數一個檔(只有 KEY=VALUE)、開機腳本一個檔(逐位元組=cloud-setup-script.sh), +# **兩個檔都整份貼**,沒有任何要人自己裁切的地方。 +SETUP_OUT="${OUT%.txt}-setup-script.sh" { - echo "claude.ai → Cloud environments → 你的環境。下面兩塊各自貼進對應欄位。" - echo "版本:${VER}(${VER_DATE})——${VER_WHY}" - echo "比 ${PREV_VER} 多:${ADDED:-(無)}|少:${REMOVED:-(無)}" - echo "產生時間:$(date '+%Y-%m-%d %H:%M')" - echo - echo "════════ ① Environment variables(一行一個,名字與值分開填)════════" for n in "${NEEDED[@]}"; do if v=$(lookup "$n"); then echo "$n=$v" @@ -159,13 +158,19 @@ MISSING=() fi done for kv in "${FIXED[@]}"; do echo "$kv"; done - echo - echo "════════ ② Setup script(整段貼,一字不改)════════" - cat "$SETUP" } > "$OUT" -chmod 600 "$OUT" +cp "$SETUP" "$SETUP_OUT" +chmod 600 "$OUT" "$SETUP_OUT" +{ + echo "claude.ai → Cloud environments → 你的環境(${VER},${VER_DATE}:${VER_WHY})" + echo "比 ${PREV_VER} 多:${ADDED:-(無)}|少:${REMOVED:-(無)}" + echo "① Environment variables 欄:整份貼 $(basename "$OUT")" + echo "② Setup script 欄:整份貼 $(basename "$SETUP_OUT")(一字不改,不要加任何東西)" + echo "貼完刪掉這三個檔。" +} > "${OUT%.txt}-README.txt" echo "✅ 產生完成:$OUT" echo " 版本:${VER}(比 ${PREV_VER} 多:${ADDED:-無}|少:${REMOVED:-無})" echo " 變數 ${#NEEDED[@]} 個|找不到值的 ${#MISSING[@]} 個 ${MISSING[*]:-}" -echo " 🔴 這個檔含金鑰真身:貼完就刪(rm '$OUT'),它刻意不在任何 repo 裡。" +echo " 開機腳本:$SETUP_OUT" +echo " 🔴 含金鑰真身:貼完就刪(rm '${OUT%.txt}'*),它刻意不在任何 repo 裡。" diff --git a/scripts/test-make-cloud-env.sh b/scripts/test-make-cloud-env.sh index 2fccfbb..8537cc7 100755 --- a/scripts/test-make-cloud-env.sh +++ b/scripts/test-make-cloud-env.sh @@ -61,7 +61,12 @@ printf '%s\n' "$OUT_LINE" | grep -q "找不到值的 0 個" \ && ok "A4 收尾那行說「找不到值的 0 個」" || bad "A4 收尾計數不對:$OUT_LINE" # 版本(leo 2026-09-18):產物檔頭帶現行版本號;清單改了沒升版要拒絕 -grep -q "^版本:v[0-9]" "$F" && ok "V1 產物檔頭寫著版本號" || bad "V1 產物檔頭沒有版本號" +grep -q "(v[0-9]" "${F%.txt}-README.txt" && ok "V1 README 寫著版本號" || bad "V1 README 沒有版本號" +# 2026-09-18 實撞:兩段同檔、分隔線被貼進 Setup script 欄 ⇒ 雲端開機 exit 127。分檔後兩件事要守住: +bad_lines=$(grep -cvE '^[A-Z][A-Z0-9_]*=' "$F") +chk 0 "$bad_lines" "V3 變數檔每一行都是 KEY=VALUE(沒有分隔線、說明文字)" +cmp -s "${F%.txt}-setup-script.sh" "$(cd "$(dirname "$S")/.." && pwd)/docs/cloud-setup-script.sh" \ + && ok "V4 開機腳本檔與 docs/cloud-setup-script.sh 逐位元組相同" || bad "V4 開機腳本檔被加料了" VT="$(cd "$(dirname "$S")/.." && pwd)/docs/cloud-env-versions.tsv"; VB="$VT.bak-test" cp "$VT" "$VB"; printf 'v999\t2099-01-01\tNOPE_ONLY\t測試用\n' >> "$VT" INKSTONE_ROOT="$FAKE" OUT_DIR="$OUTD" bash "$S" >/dev/null 2>&1; rc=$?