mirror of
https://github.com/ktds-dg0501/kt-event-marketing.git
synced 2025-12-06 16:46:23 +00:00
87 lines
2.5 KiB
Bash
Executable File
87 lines
2.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# PlantUML 파일 검증 스크립트
|
|
# localhost:38080 서버를 사용하여 문법 검사
|
|
|
|
echo "====================================="
|
|
echo "PlantUML 파일 검증 시작"
|
|
echo "====================================="
|
|
echo ""
|
|
|
|
SUCCESS_COUNT=0
|
|
FAIL_COUNT=0
|
|
TOTAL_COUNT=0
|
|
|
|
# 검증 결과 저장 디렉토리
|
|
RESULT_DIR="debug/puml-validation"
|
|
mkdir -p "$RESULT_DIR"
|
|
|
|
# 결과 파일 초기화
|
|
RESULT_FILE="$RESULT_DIR/validation-result.txt"
|
|
ERROR_FILE="$RESULT_DIR/validation-errors.txt"
|
|
> "$RESULT_FILE"
|
|
> "$ERROR_FILE"
|
|
|
|
# design/backend/sequence 하위의 모든 .puml 파일 검증
|
|
while IFS= read -r file; do
|
|
TOTAL_COUNT=$((TOTAL_COUNT + 1))
|
|
filename=$(basename "$file")
|
|
|
|
echo "[$TOTAL_COUNT] 검증 중: $file"
|
|
|
|
# PlantUML 서버로 POST 요청
|
|
HTTP_CODE=$(curl -s -w "%{http_code}" -X POST \
|
|
http://localhost:38080/png \
|
|
-H "Content-Type: text/plain" \
|
|
--data-binary "@$file" \
|
|
-o "$RESULT_DIR/${filename}.png" 2>&1 | tail -1)
|
|
|
|
if [ "$HTTP_CODE" = "200" ]; then
|
|
# PNG 파일이 정상적으로 생성되었는지 확인
|
|
if [ -f "$RESULT_DIR/${filename}.png" ] && [ -s "$RESULT_DIR/${filename}.png" ]; then
|
|
echo " ✅ 성공: $filename"
|
|
echo "✅ $file - HTTP $HTTP_CODE" >> "$RESULT_FILE"
|
|
SUCCESS_COUNT=$((SUCCESS_COUNT + 1))
|
|
else
|
|
echo " ❌ 실패: $filename (빈 파일)"
|
|
echo "❌ $file - 빈 PNG 파일" >> "$ERROR_FILE"
|
|
FAIL_COUNT=$((FAIL_COUNT + 1))
|
|
fi
|
|
else
|
|
echo " ❌ 실패: $filename (HTTP $HTTP_CODE)"
|
|
echo "❌ $file - HTTP $HTTP_CODE" >> "$ERROR_FILE"
|
|
|
|
# 오류 내용 저장
|
|
curl -s -X POST \
|
|
http://localhost:38080/png \
|
|
-H "Content-Type: text/plain" \
|
|
--data-binary "@$file" \
|
|
-o "$RESULT_DIR/${filename}.error.txt" 2>&1
|
|
|
|
echo " 오류 상세: $RESULT_DIR/${filename}.error.txt" >> "$ERROR_FILE"
|
|
FAIL_COUNT=$((FAIL_COUNT + 1))
|
|
fi
|
|
|
|
echo ""
|
|
done < <(find design/backend/sequence -name "*.puml" -type f | sort)
|
|
|
|
echo "====================================="
|
|
echo "검증 완료"
|
|
echo "====================================="
|
|
echo "총 파일 수: $TOTAL_COUNT"
|
|
echo "성공: $SUCCESS_COUNT"
|
|
echo "실패: $FAIL_COUNT"
|
|
echo ""
|
|
echo "상세 결과: $RESULT_FILE"
|
|
if [ $FAIL_COUNT -gt 0 ]; then
|
|
echo "오류 상세: $ERROR_FILE"
|
|
fi
|
|
echo "====================================="
|
|
|
|
# 실패한 파일이 있으면 종료 코드 1 반환
|
|
if [ $FAIL_COUNT -gt 0 ]; then
|
|
exit 1
|
|
else
|
|
exit 0
|
|
fi
|