Files
tk-factory-services/scripts/check-version.sh
Hyungi Ahn d827f22f4d feat: tkreport/tkqc UX 개선 - 신고 완료 모달, 크로스시스템 배너, AI 도우미 가시성
- 신고 제출 후 alert → 성공 모달로 교체 (신고현황/새신고 버튼)
- cross-nav.js: tkreport 페이지 상단 크로스시스템 네비게이션 배너
- report-status.html: AI 신고 도우미 버튼 추가
- common-header.js: tkqc 헤더에 "신고" 외부 링크 추가
- 배포 스크립트/가이드 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 08:00:14 +09:00

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 " 배포 로그가 없습니다"