kt-event-marketing/fix-puml-syntax.sh
2025-10-22 14:13:57 +09:00

75 lines
2.3 KiB
Bash
Executable File

#!/bin/bash
# PlantUML 문법 오류 수정 스크립트
# [ 문법을 Client participant로 변경
echo "====================================="
echo "PlantUML 파일 문법 수정 시작"
echo "====================================="
echo ""
# 수정할 파일 목록
FILES=(
"design/backend/sequence/inner/user-로그인.puml"
"design/backend/sequence/inner/user-로그아웃.puml"
"design/backend/sequence/inner/user-프로필수정.puml"
"design/backend/sequence/inner/ai-트렌드분석및추천.puml"
"design/backend/sequence/inner/content-이미지생성.puml"
"design/backend/sequence/inner/distribution-다중채널배포.puml"
"design/backend/sequence/inner/event-대시보드조회.puml"
"design/backend/sequence/outer/이벤트생성플로우.puml"
)
for file in "${FILES[@]}"; do
if [ ! -f "$file" ]; then
echo "❌ 파일이 존재하지 않음: $file"
continue
fi
echo "수정 중: $file"
# 백업 생성
cp "$file" "${file}.bak"
# 1. Client actor가 없으면 추가 (첫 번째 participant 앞에)
if ! grep -q "^actor Client" "$file"; then
# title 다음 줄에 빈 줄이 있고, 그 다음에 participant가 나오는 경우
sed -i.tmp '/^title /a\
\
actor Client' "$file"
rm "${file}.tmp" 2>/dev/null
echo " - Client actor 추가됨"
fi
# 2. [-> 패턴을 Client -> 로 변경
if grep -q "\[-> " "$file"; then
sed -i.tmp 's/\[-> /Client -> /g' "$file"
rm "${file}.tmp" 2>/dev/null
echo " - [-> 패턴 수정됨"
fi
# 3. -->[ 패턴을 --> Client 로 변경
if grep -q " -->\[" "$file"; then
sed -i.tmp 's/ -->\[/ --> Client/g' "$file"
rm "${file}.tmp" 2>/dev/null
echo " - -->[ 패턴 수정됨"
fi
# 4. --> [: 패턴을 --> Client: 로 변경
if grep -q " --> \[:" "$file"; then
sed -i.tmp 's/ --> \[:/ --> Client:/g' "$file"
rm "${file}.tmp" 2>/dev/null
echo " - --> [: 패턴 수정됨"
fi
echo " ✅ 완료: $file"
echo ""
done
echo "====================================="
echo "모든 파일 수정 완료"
echo "====================================="
echo ""
echo "백업 파일: *.puml.bak"
echo "백업 삭제: find design/backend/sequence -name '*.bak' -delete"