소스 검색

fix:修复同步脚本占位符未替换问题

Jerry Liang 1 개월 전
부모
커밋
83e5d181bc
1개의 변경된 파일과 27개의 추가작업 그리고 0개의 파일을 삭제
  1. 27 0
      deploy/scripts/sync_kiro_config.sh

+ 27 - 0
deploy/scripts/sync_kiro_config.sh

@@ -47,6 +47,13 @@ KIRO_AGENT="${KIRO_AGENT:-kiro-cli}"
 KIRO_SKILLS_INSTALL="${KIRO_SKILLS_INSTALL:-y}"
 KIRO_DRY_RUN="${KIRO_DRY_RUN:-n}"
 
+# 占位符替换目标值(须与 deploy_kiro_cli.sh 保持一致):
+#   __KIRO_HOME__     → ${KIRO_HOME}         (fwh-pyrun、templates 的父路径)
+#   __WIKI_DOCS__     → ${KIRO_WIKI_DOCS}     (产品文档知识库目录)
+#   __OFFICECLI_BIN__ → ${KIRO_OFFICECLI_BIN} (officecli 可执行文件)
+KIRO_WIKI_DOCS="${KIRO_WIKI_DOCS:-/home/jerry-remote/web/FranklinWH-Wiki/client/docs}"
+KIRO_OFFICECLI_BIN="${KIRO_OFFICECLI_BIN:-/home/jerry-remote/.local/bin/officecli}"
+
 # A→B 覆盖同步的配置子目录
 SYNC_SUBDIRS=(steering agents)
 
@@ -168,6 +175,25 @@ install_skills_sh() {
     ok "skills.sh skill 命令安装完成(共 ${count} 个)"
 }
 
+# ---------------------------------------------------------------------------
+# 4. 替换占位符(与 deploy_kiro_cli.sh 一致)
+#    A 端源文件存的是带占位符的模板,rsync 到 B 端后必须替换为真实路径,
+#    否则 agents/*.json 的命令白名单、officecli 路径、skills 文档会残留 __XXX__。
+#    作用范围:B 端 agents/*.json 与 skills/**/*.md。
+# ---------------------------------------------------------------------------
+replace_placeholders() {
+    info "替换占位符:__KIRO_HOME__=${KIRO_HOME%/}  __WIKI_DOCS__=${KIRO_WIKI_DOCS%/}  __OFFICECLI_BIN__=${KIRO_OFFICECLI_BIN}"
+    # 用 # 作为 sed 分隔符(路径含 /);替换值不含 #
+    local sed_expr="s#__KIRO_HOME__#${KIRO_HOME%/}#g; s#__WIKI_DOCS__#${KIRO_WIKI_DOCS%/}#g; s#__OFFICECLI_BIN__#${KIRO_OFFICECLI_BIN}#g"
+    if [[ -d "${B_DIR}/agents" ]]; then
+        run_fs "sudo find '${B_DIR}/agents' -maxdepth 1 -type f -name '*.json' -exec sed -i -E '${sed_expr}' {} +"
+    fi
+    if [[ -d "${B_DIR}/skills" ]]; then
+        run_fs "sudo find '${B_DIR}/skills' -type f -name '*.md' -exec sed -i -E '${sed_expr}' {} +"
+    fi
+    ok "占位符替换完成"
+}
+
 # ---------------------------------------------------------------------------
 # main
 # ---------------------------------------------------------------------------
@@ -184,6 +210,7 @@ main() {
     sync_config_dirs
     sync_custom_skills
     install_skills_sh
+    replace_placeholders
 
     # 属主归还给 B 端运行用户
     run_fs "sudo chown -R '${KIRO_RUN_AS_USER}' '${B_DIR}'"