#!/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 "================================================================"