#!/usr/bin/env bash # 로컬 ↔ 서버 work-tree 소스 동일성 검증 set -euo pipefail REMOTE="${REMOTE:-aidev@exdev.co.kr}" WORK_TREE="${WORK_TREE:-/Users/aidev/apps/goldenChart}" LOCAL_ROOT="$(cd "$(dirname "$0")/.." && pwd)" FILES=( frontend/src/utils/ChartManager.ts frontend/src/utils/IchimokuCloudPlugin.ts frontend/package-lock.json scripts/deploy.sh ) echo "=== 로컬 ↔ 서버 체크섬 ($REMOTE:$WORK_TREE) ===" FAIL=0 for f in "${FILES[@]}"; do L="$LOCAL_ROOT/$f" [ -f "$L" ] || { echo "MISSING local $f"; FAIL=1; continue; } LHASH=$(shasum -a 256 "$L" | awk '{print $1}') RHASH=$(ssh -o BatchMode=yes "$REMOTE" "shasum -a 256 '$WORK_TREE/$f' 2>/dev/null" | awk '{print $1}') if [ "$LHASH" = "$RHASH" ]; then echo "OK $f" else echo "DIFF $f" echo " local=$LHASH" echo " remote=$RHASH" FAIL=1 fi done echo "=== Git HEAD ===" echo -n "local: "; git -C "$LOCAL_ROOT" rev-parse HEAD echo -n "remote: "; ssh -o BatchMode=yes "$REMOTE" "git --git-dir=/Volumes/ADATA/git/goldenChart.git rev-parse HEAD" echo "" [ "$FAIL" -eq 0 ] && echo "검증 통과" || { echo "검증 실패"; exit 1; }