- 신고 제출 후 alert → 성공 모달로 교체 (신고현황/새신고 버튼) - cross-nav.js: tkreport 페이지 상단 크로스시스템 네비게이션 배너 - report-status.html: AI 신고 도우미 버튼 추가 - common-header.js: tkqc 헤더에 "신고" 외부 링크 추가 - 배포 스크립트/가이드 추가 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
88 lines
2.8 KiB
Bash
Executable File
88 lines
2.8 KiB
Bash
Executable File
#!/bin/bash
|
|
# ===================================================================
|
|
# TK Factory Services - 배포 상태 확인 (맥북에서 실행)
|
|
# ===================================================================
|
|
# 사용법: ./scripts/check-version.sh
|
|
# 설정: ~/.tk-deploy-config
|
|
# ===================================================================
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
PROJECT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
CONFIG_FILE="$HOME/.tk-deploy-config"
|
|
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
CYAN='\033[0;36m'
|
|
NC='\033[0m'
|
|
|
|
# === 설정 로드 ===
|
|
if [ ! -f "$CONFIG_FILE" ]; then
|
|
echo -e "${RED}ERROR: 설정 파일이 없습니다: $CONFIG_FILE${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
source "$CONFIG_FILE"
|
|
|
|
DOCKER="/usr/local/bin/docker"
|
|
|
|
ssh_cmd() {
|
|
ssh -o ConnectTimeout=10 "${NAS_USER}@${NAS_HOST}" "$@"
|
|
}
|
|
|
|
# === NAS 배포 버전 확인 ===
|
|
echo "=== TK Factory Services - 배포 상태 ==="
|
|
echo ""
|
|
|
|
echo -e "${CYAN}[NAS 배포 버전]${NC}"
|
|
NAS_INFO=$(ssh_cmd "cd ${NAS_DEPLOY_PATH} && git log -1 --format='%H|%s|%ci'" 2>/dev/null || echo "")
|
|
|
|
if [ -z "$NAS_INFO" ]; then
|
|
echo -e " ${RED}NAS에서 git 정보를 가져올 수 없습니다${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
NAS_HASH=$(echo "$NAS_INFO" | cut -d'|' -f1)
|
|
NAS_MSG=$(echo "$NAS_INFO" | cut -d'|' -f2)
|
|
NAS_DATE=$(echo "$NAS_INFO" | cut -d'|' -f3)
|
|
NAS_SHORT="${NAS_HASH:0:7}"
|
|
|
|
echo " 커밋: ${NAS_SHORT} - ${NAS_MSG}"
|
|
echo " 날짜: ${NAS_DATE}"
|
|
|
|
# === origin/main 대비 상태 ===
|
|
echo ""
|
|
echo -e "${CYAN}[origin/main 대비]${NC}"
|
|
|
|
cd "$PROJECT_DIR"
|
|
git fetch origin --quiet
|
|
|
|
LOCAL_BRANCH=$(git rev-parse --abbrev-ref HEAD)
|
|
ORIGIN_HASH=$(git rev-parse "origin/${LOCAL_BRANCH}" 2>/dev/null || echo "")
|
|
|
|
if [ -n "$ORIGIN_HASH" ]; then
|
|
if [ "$NAS_HASH" = "$ORIGIN_HASH" ]; then
|
|
echo -e " ${GREEN}최신 상태${NC} (origin/${LOCAL_BRANCH}과 동일)"
|
|
else
|
|
BEHIND_COUNT=$(git log "${NAS_HASH}..${ORIGIN_HASH}" --oneline 2>/dev/null | wc -l | tr -d ' ')
|
|
if [ "$BEHIND_COUNT" -gt 0 ]; then
|
|
echo -e " ${YELLOW}${BEHIND_COUNT}개 커밋 뒤처짐${NC}"
|
|
echo ""
|
|
echo " 미배포 커밋:"
|
|
git log "${NAS_HASH}..${ORIGIN_HASH}" --oneline --no-decorate | sed 's/^/ /'
|
|
else
|
|
echo -e " ${YELLOW}NAS가 origin보다 앞서 있거나 브랜치가 다릅니다${NC}"
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
# === Docker 컨테이너 상태 ===
|
|
echo ""
|
|
echo -e "${CYAN}[Docker 컨테이너 상태]${NC}"
|
|
ssh_cmd "cd ${NAS_DEPLOY_PATH} && echo '${NAS_SUDO_PASS}' | sudo -S ${DOCKER} compose ps --format 'table {{.Name}}\t{{.Status}}'" 2>&1 | grep -v '^\[sudo\]' || echo " 컨테이너 상태를 가져올 수 없습니다"
|
|
|
|
# === 최근 배포 로그 ===
|
|
echo ""
|
|
echo -e "${CYAN}[최근 배포 로그]${NC}"
|
|
ssh_cmd "tail -5 ${NAS_DEPLOY_PATH}/DEPLOY_LOG" 2>/dev/null | sed 's/^/ /' || echo " 배포 로그가 없습니다"
|