Update sync.sh: Refactor sync_folder function for better file synchronization
This commit is contained in:
parent
44c8d0dc44
commit
1bac025faf
1 changed files with 28 additions and 14 deletions
|
|
@ -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
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue