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"
|
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() {
|
sync_common() {
|
||||||
local src="$1" dst="$2"
|
local src="$1" dst="$2"
|
||||||
for folder in rules/common skills/common; do
|
sync_folder "$src/rules/common" "$dst/rules/common" "rules.md"
|
||||||
rm -rf "$dst/$folder"
|
sync_folder "$src/skills/common" "$dst/skills/common"
|
||||||
mkdir -p "$dst/$folder"
|
sync_folder "$src/bin" "$dst/bin"
|
||||||
cp -r "$src/$folder/." "$dst/$folder/"
|
|
||||||
done
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# ── rules.md 내용을 진입 파일들에 반영 ───────────────────────────────────────
|
# ── rules.md 내용을 진입 파일들에 반영 ───────────────────────────────────────
|
||||||
|
|
@ -105,19 +123,15 @@ echo "▶ $(basename "$PROJECT_ROOT") → $(basename "$TARGET")"
|
||||||
|
|
||||||
# ── agentic-framework에서 다른 프로젝트로 ────────────────────────────────────
|
# ── agentic-framework에서 다른 프로젝트로 ────────────────────────────────────
|
||||||
if [[ "$IS_FRAMEWORK" == "1" ]]; then
|
if [[ "$IS_FRAMEWORK" == "1" ]]; then
|
||||||
RULES_MD="$SRC_AO/rules/common/rules.md"
|
|
||||||
|
|
||||||
if [[ ! -d "$DST_AO" ]]; then
|
if [[ ! -d "$DST_AO" ]]; then
|
||||||
echo " 최초 진행: agent-ops 전체 복사"
|
echo " 최초 진행: agent-ops 전체 복사"
|
||||||
cp -r "$SRC_AO" "$TARGET/"
|
cp -r "$SRC_AO" "$TARGET/"
|
||||||
rm -f "$DST_AO/rules/common/rules.md"
|
echo -e "${YELLOW} init-agent-ops 스킬로 초기화를 진행하세요.${RESET}"
|
||||||
else
|
else
|
||||||
echo " 이후 진행: common/ 동기화"
|
echo " 이후 진행: common/ 동기화"
|
||||||
sync_common "$SRC_AO" "$DST_AO"
|
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
|
fi
|
||||||
|
|
||||||
apply_entry_files "$RULES_MD" "$TARGET"
|
|
||||||
echo -e "${GREEN}✓ 완료 → $(basename "$TARGET")${RESET}"
|
echo -e "${GREEN}✓ 완료 → $(basename "$TARGET")${RESET}"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
@ -145,12 +159,12 @@ echo "$NEW_VER" > "$SRC_AO/.version"
|
||||||
echo "$NEW_VER" > "$DST_AO/.version"
|
echo "$NEW_VER" > "$DST_AO/.version"
|
||||||
|
|
||||||
cd "$TARGET"
|
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 commit -m "sync: from $(basename "$PROJECT_ROOT") v$NEW_VER"
|
||||||
git push
|
git push
|
||||||
cd "$PROJECT_ROOT"
|
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 commit -m "sync: to agentic-framework v$NEW_VER"
|
||||||
git push
|
git push
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue