192 lines
7.0 KiB
Bash
Executable File
192 lines
7.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# ==============================================================================
|
|
# PLM 프로젝트 환경 설정 스크립트
|
|
# ==============================================================================
|
|
echo "================================================================"
|
|
echo "PLM 프로젝트 환경 설정을 시작합니다..."
|
|
echo "================================================================"
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# 1. Git 설정
|
|
# ------------------------------------------------------------------------------
|
|
echo "🔧 Git 설정 중..."
|
|
|
|
# Git 사용자 정보 설정 (이미 설정되어 있으면 건너뜀)
|
|
if [ -z "$(git config --global user.name)" ]; then
|
|
echo "Git 사용자 이름을 설정합니다..."
|
|
git config --global user.name "PLM Developer"
|
|
fi
|
|
|
|
if [ -z "$(git config --global user.email)" ]; then
|
|
echo "Git 이메일을 설정합니다..."
|
|
git config --global user.email "developer@plm-ilshin.local"
|
|
fi
|
|
|
|
# Git 기본 설정
|
|
git config --global init.defaultBranch main
|
|
git config --global pull.rebase false
|
|
git config --global core.autocrlf input
|
|
git config --global core.safecrlf false
|
|
|
|
echo "✅ Git 설정 완료"
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# 2. 파일 소유권 설정
|
|
# ------------------------------------------------------------------------------
|
|
echo "📁 파일 소유권 설정 중..."
|
|
|
|
# 전체 프로젝트 소유권을 현재 사용자로 변경
|
|
sudo chown -R $USER:$USER .
|
|
|
|
# 특히 중요한 디렉토리들의 소유권 확인
|
|
sudo chown -R $USER:$USER WebContent/
|
|
sudo chown -R $USER:$USER src/
|
|
sudo chown -R $USER:$USER db/
|
|
|
|
echo "✅ 파일 소유권 설정 완료"
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# 3. 디렉토리 권한 설정
|
|
# ------------------------------------------------------------------------------
|
|
echo "🔐 디렉토리 권한 설정 중..."
|
|
|
|
# 주요 디렉토리 권한 설정
|
|
chmod 755 .
|
|
chmod -R 755 WebContent/
|
|
chmod -R 755 src/
|
|
chmod -R 755 db/
|
|
|
|
# 스크립트 파일들 실행 권한 부여
|
|
find . -name "*.sh" -type f -exec chmod +x {} \;
|
|
|
|
# classes 디렉토리가 없으면 생성하고 권한 설정
|
|
mkdir -p WebContent/WEB-INF/classes
|
|
chmod 755 WebContent/WEB-INF/classes
|
|
|
|
# lib 디렉토리 권한 설정
|
|
if [ -d "WebContent/WEB-INF/lib" ]; then
|
|
chmod 755 WebContent/WEB-INF/lib
|
|
fi
|
|
|
|
echo "✅ 디렉토리 권한 설정 완료"
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# 4. JSP 파일 권한 설정
|
|
# ------------------------------------------------------------------------------
|
|
echo "📄 JSP 파일 권한 설정 중..."
|
|
|
|
# view 디렉토리의 모든 JSP 파일 권한 설정
|
|
if [ -d "WebContent/WEB-INF/view" ]; then
|
|
find WebContent/WEB-INF/view -name "*.jsp" -type f -exec chmod 644 {} \;
|
|
find WebContent/WEB-INF/view -type d -exec chmod 755 {} \;
|
|
fi
|
|
|
|
echo "✅ JSP 파일 권한 설정 완료"
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# 5. 빌드 환경 정리
|
|
# ------------------------------------------------------------------------------
|
|
echo "🧹 빌드 환경 정리 중..."
|
|
|
|
# 기존 클래스 파일 삭제 (권한 문제 없이)
|
|
if [ -d "WebContent/WEB-INF/classes" ]; then
|
|
rm -rf WebContent/WEB-INF/classes/*
|
|
fi
|
|
|
|
# 필요한 디렉토리 다시 생성
|
|
mkdir -p WebContent/WEB-INF/classes
|
|
mkdir -p WebContent/WEB-INF/lib
|
|
|
|
echo "✅ 빌드 환경 정리 완료"
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# 6. Docker 권한 설정 (Docker가 설치되어 있는 경우)
|
|
# ------------------------------------------------------------------------------
|
|
if command -v docker &> /dev/null; then
|
|
echo "🐳 Docker 권한 설정 중..."
|
|
|
|
# Docker 그룹에 현재 사용자 추가 (이미 추가되어 있으면 무시됨)
|
|
if ! groups $USER | grep -q docker; then
|
|
sudo usermod -aG docker $USER
|
|
echo "⚠️ Docker 그룹에 추가되었습니다. 변경사항 적용을 위해 로그아웃 후 다시 로그인하세요."
|
|
fi
|
|
|
|
echo "✅ Docker 권한 설정 완료"
|
|
fi
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# 7. Tomcat 설정 파일 권한
|
|
# ------------------------------------------------------------------------------
|
|
echo "☕ Tomcat 설정 권한 설정 중..."
|
|
|
|
if [ -d "tomcat-conf" ]; then
|
|
chmod -R 644 tomcat-conf/*
|
|
chmod 755 tomcat-conf
|
|
fi
|
|
|
|
echo "✅ Tomcat 설정 권한 설정 완료"
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# 8. 환경 변수 및 alias 설정
|
|
# ------------------------------------------------------------------------------
|
|
echo "⚙️ 환경 설정 중..."
|
|
|
|
# .bashrc에 PLM 프로젝트 관련 alias 추가 (중복 방지)
|
|
if ! grep -q "# PLM Project Aliases" ~/.bashrc; then
|
|
cat >> ~/.bashrc << 'EOF'
|
|
|
|
# PLM Project Aliases
|
|
alias plm-setup='cd ~/plm-ilshin && ./setup.sh'
|
|
alias plm-build='cd ~/plm-ilshin && ./dev_git_only.sh'
|
|
alias plm-clean='cd ~/plm-ilshin && rm -rf WebContent/WEB-INF/classes/* && echo "Build artifacts cleaned"'
|
|
alias plm-logs='cd ~/plm-ilshin && docker-compose logs -f'
|
|
alias plm-restart='cd ~/plm-ilshin && docker-compose restart'
|
|
EOF
|
|
echo "✅ PLM 프로젝트 alias가 ~/.bashrc에 추가되었습니다."
|
|
fi
|
|
|
|
echo "✅ 환경 설정 완료"
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# 9. 설정 검증
|
|
# ------------------------------------------------------------------------------
|
|
echo "🔍 설정 검증 중..."
|
|
|
|
# 주요 파일들의 소유권 확인
|
|
echo "주요 파일 소유권 확인:"
|
|
ls -la WebContent/WEB-INF/view/contractMgmt/ | head -5
|
|
echo ""
|
|
|
|
# Git 설정 확인
|
|
echo "Git 설정 확인:"
|
|
echo "사용자: $(git config --global user.name)"
|
|
echo "이메일: $(git config --global user.email)"
|
|
echo ""
|
|
|
|
# 디렉토리 권한 확인
|
|
echo "주요 디렉토리 권한 확인:"
|
|
ls -ld WebContent/ src/ WebContent/WEB-INF/classes/
|
|
echo ""
|
|
|
|
echo "✅ 설정 검증 완료"
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# 완료 메시지
|
|
# ------------------------------------------------------------------------------
|
|
echo "================================================================"
|
|
echo "🎉 PLM 프로젝트 환경 설정이 완료되었습니다!"
|
|
echo "================================================================"
|
|
echo ""
|
|
echo "📌 추가된 명령어들:"
|
|
echo " plm-setup : 이 설정 스크립트 재실행"
|
|
echo " plm-build : 프로젝트 빌드 및 Git 작업"
|
|
echo " plm-clean : 빌드 산출물 정리"
|
|
echo " plm-logs : Docker 로그 확인"
|
|
echo " plm-restart : Docker 컨테이너 재시작"
|
|
echo ""
|
|
echo "💡 터미널을 재시작하거나 'source ~/.bashrc'를 실행하여"
|
|
echo " 새로운 alias를 사용할 수 있습니다."
|
|
echo ""
|
|
echo "🚀 이제 개발을 시작할 수 있습니다!"
|
|
echo "================================================================" |