65 lines
2.5 KiB
Bash
Executable File
65 lines
2.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# 로컬 submodule 소스 → chatbot.exdev.co.kr work tree rsync
|
|
# (서버에서 GitHub HTTPS/SSH 미설정 시 deploy 보조)
|
|
set -euo pipefail
|
|
|
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
EXDEV_SSH="${EXDEV_SSH:-aidev@chatbot.exdev.co.kr}"
|
|
REMOTE_WT="${REMOTE_WORK_TREE:-/Users/aidev/dev/exAichatbot_agent}"
|
|
|
|
log() { echo "[sync-submodules] $*"; }
|
|
|
|
SUBMODULES=(
|
|
chatbotApp-chatbot2.0-agent
|
|
chatbotApi-chatbot2.0-agent
|
|
exAiChatBot-chatbot2.0-agent
|
|
kakaoChatbotSkill-chatbot2.0-agent
|
|
chatbotDesktopApp-chatbot2.0
|
|
)
|
|
|
|
log "원격 동기화: ${EXDEV_SSH}:${REMOTE_WT}"
|
|
|
|
for path in "${SUBMODULES[@]}"; do
|
|
local_src="${ROOT_DIR}/${path}"
|
|
[[ -d "${local_src}" ]] || { echo "ERROR: ${local_src} 없음"; exit 1; }
|
|
log ">>> rsync ${path}"
|
|
rsync -az --delete \
|
|
--exclude 'node_modules/' \
|
|
--exclude 'build/' \
|
|
--exclude 'dist/' \
|
|
--exclude '.gradle/' \
|
|
--exclude 'qdrant_data/' \
|
|
--exclude 'logs/' \
|
|
--exclude '.next/' \
|
|
--exclude 'web/out/' \
|
|
--exclude '.git/' \
|
|
"${local_src}/" "${EXDEV_SSH}:${REMOTE_WT}/${path}/"
|
|
done
|
|
|
|
log "overlay 복사..."
|
|
rsync -az "${ROOT_DIR}/server-dev/docker-compose.rag.server.yml" \
|
|
"${EXDEV_SSH}:${REMOTE_WT}/server-dev/docker-compose.rag.server.yml"
|
|
rsync -az "${ROOT_DIR}/server-dev/docker-compose.oracle.yml" \
|
|
"${EXDEV_SSH}:${REMOTE_WT}/server-dev/docker-compose.oracle.yml"
|
|
rsync -az "${ROOT_DIR}/server-dev/oracle/" \
|
|
"${EXDEV_SSH}:${REMOTE_WT}/server-dev/oracle/"
|
|
rsync -az "${ROOT_DIR}/local-dev/docker-compose.rag.local.yml" \
|
|
"${EXDEV_SSH}:${REMOTE_WT}/local-dev/docker-compose.rag.local.yml" 2>/dev/null || true
|
|
|
|
ssh -o BatchMode=yes "${EXDEV_SSH}" "mkdir -p '${REMOTE_WT}/exAiChatBot-chatbot2.0-agent' '${REMOTE_WT}/server-dev/oracle/init' && \
|
|
cp '${REMOTE_WT}/server-dev/docker-compose.rag.server.yml' '${REMOTE_WT}/exAiChatBot-chatbot2.0-agent/docker-compose.server.yml' 2>/dev/null || true"
|
|
|
|
if [[ -d "${ROOT_DIR}/chatbotApp-chatbot2.0-agent/public" ]]; then
|
|
log ">>> rsync chatbotApp/public (로컬 빌드 산출물)"
|
|
rsync -az "${ROOT_DIR}/chatbotApp-chatbot2.0-agent/public/" \
|
|
"${EXDEV_SSH}:${REMOTE_WT}/chatbotApp-chatbot2.0-agent/public/"
|
|
fi
|
|
|
|
if [[ -d "${ROOT_DIR}/chatbotApp-chatbot2.0-agent/public-ai" ]]; then
|
|
log ">>> rsync chatbotApp/public-ai (AI 모드 빌드 산출물)"
|
|
rsync -az "${ROOT_DIR}/chatbotApp-chatbot2.0-agent/public-ai/" \
|
|
"${EXDEV_SSH}:${REMOTE_WT}/chatbotApp-chatbot2.0-agent/public-ai/"
|
|
fi
|
|
|
|
log "✅ submodule rsync 완료"
|