#!/bin/bash

# ptyGitSubTreeAdd - Git subtree add 스크립트
# 사용법: ptyGitSubTreeAdd <폴더명> <remote주소> [브랜치명]
# 예시: ptyGitSubTreeAdd ptyLibrary_PHP https://gitlab.platyhouse.com/platyhouse/ptyLibrary_PHP

if [ -z "$1" ] || [ -z "$2" ]; then
    echo "사용법: ptyGitSubTreeAdd <폴더명> <remote주소> [브랜치명]"
    echo "예시: ptyGitSubTreeAdd ptyLibrary_PHP https://gitlab.platyhouse.com/platyhouse/ptyLibrary_PHP"
    exit 1
fi

FOLDER_NAME="$1"
REMOTE_URL="$2"
BRANCH="${3:-main}"

# 폴더가 이미 존재하는지 확인
if [ -d "$FOLDER_NAME" ]; then
    echo "오류: '$FOLDER_NAME' 폴더가 이미 존재합니다."
    exit 1
fi

# remote 등록 (이미 있으면 URL 업데이트)
if git remote get-url "$FOLDER_NAME" > /dev/null 2>&1; then
    git remote set-url "$FOLDER_NAME" "$REMOTE_URL"
    echo "Remote '$FOLDER_NAME' URL 업데이트됨"
else
    git remote add "$FOLDER_NAME" "$REMOTE_URL"
    echo "Remote '$FOLDER_NAME' 등록됨"
fi

echo ""
echo "Subtree 추가 중..."
echo "  폴더: $FOLDER_NAME"
echo "  Remote: $FOLDER_NAME ($REMOTE_URL)"
echo "  브랜치: $BRANCH"
echo ""

git subtree add --prefix="$FOLDER_NAME" "$FOLDER_NAME" "$BRANCH" --squash

if [ $? -eq 0 ]; then
    echo ""
    echo "완료: '$FOLDER_NAME' subtree가 추가되었습니다."
else
    echo ""
    echo "오류: subtree 추가에 실패했습니다."
    # 실패 시 remote 제거
    git remote remove "$FOLDER_NAME" 2>/dev/null
    exit 1
fi
