diff --git a/agent-ops/bin/sync.sh b/agent-ops/bin/sync.sh index f262a63..3dacbba 100755 --- a/agent-ops/bin/sync.sh +++ b/agent-ops/bin/sync.sh @@ -38,14 +38,32 @@ bump_version() { bash "$SCRIPT_DIR/bump-version.sh" "$1" } -# ── common 폴더 동기화 (삭제된 파일도 반영) ─────────────────────────────────── +# ── 폴더 동기화 (rules.md 제외, 삭제된 파일도 반영) ───────────────────────── +sync_folder() { + local src="$1" dst="$2" exclude="${3:-}" + mkdir -p "$dst" + # dst에서 src에 없는 항목 제거 (exclude 파일 보존) + find "$dst" -mindepth 1 -maxdepth 1 | while IFS= read -r item; do + local name + name="$(basename "$item")" + [[ -n "$exclude" && "$name" == "$exclude" ]] && continue + [[ ! -e "$src/$name" ]] && rm -rf "$item" + done + # src에서 dst로 복사 (exclude 파일 제외) + find "$src" -mindepth 1 -maxdepth 1 | while IFS= read -r item; do + local name + name="$(basename "$item")" + [[ -n "$exclude" && "$name" == "$exclude" ]] && continue + rm -rf "$dst/$name" + cp -r "$item" "$dst/" + done +} + sync_common() { local src="$1" dst="$2" - for folder in rules/common skills/common; do - rm -rf "$dst/$folder" - mkdir -p "$dst/$folder" - cp -r "$src/$folder/." "$dst/$folder/" - done + sync_folder "$src/rules/common" "$dst/rules/common" "rules.md" + sync_folder "$src/skills/common" "$dst/skills/common" + sync_folder "$src/bin" "$dst/bin" } # ── rules.md 내용을 진입 파일들에 반영 ─────────────────────────────────────── @@ -105,19 +123,15 @@ echo "▶ $(basename "$PROJECT_ROOT") → $(basename "$TARGET")" # ── agentic-framework에서 다른 프로젝트로 ──────────────────────────────────── if [[ "$IS_FRAMEWORK" == "1" ]]; then - RULES_MD="$SRC_AO/rules/common/rules.md" - if [[ ! -d "$DST_AO" ]]; then echo " 최초 진행: agent-ops 전체 복사" cp -r "$SRC_AO" "$TARGET/" - rm -f "$DST_AO/rules/common/rules.md" + echo -e "${YELLOW} init-agent-ops 스킬로 초기화를 진행하세요.${RESET}" else echo " 이후 진행: common/ 동기화" sync_common "$SRC_AO" "$DST_AO" - rm -f "$DST_AO/rules/common/rules.md" + apply_entry_files "$SRC_AO/rules/common/rules.md" "$TARGET" fi - - apply_entry_files "$RULES_MD" "$TARGET" echo -e "${GREEN}✓ 완료 → $(basename "$TARGET")${RESET}" exit 0 fi @@ -145,12 +159,12 @@ echo "$NEW_VER" > "$SRC_AO/.version" echo "$NEW_VER" > "$DST_AO/.version" cd "$TARGET" -git add agent-ops/rules/common agent-ops/skills/common agent-ops/.version +git add agent-ops/rules/common agent-ops/skills/common agent-ops/bin agent-ops/.version git commit -m "sync: from $(basename "$PROJECT_ROOT") v$NEW_VER" git push cd "$PROJECT_ROOT" -git add agent-ops/rules/common agent-ops/skills/common agent-ops/.version +git add agent-ops/rules/common agent-ops/skills/common agent-ops/bin agent-ops/.version git commit -m "sync: to agentic-framework v$NEW_VER" git push