first jiwoos commit
This commit is contained in:
142
update_and_run.bat
Normal file
142
update_and_run.bat
Normal file
@@ -0,0 +1,142 @@
|
||||
@echo off
|
||||
setlocal EnableExtensions EnableDelayedExpansion
|
||||
|
||||
cd /d "%~dp0"
|
||||
|
||||
set "APP_URL=http://127.0.0.1:5000"
|
||||
set "PYTHON_EXE=python"
|
||||
|
||||
echo ==================================================
|
||||
echo [0/7] Python 버전 확인
|
||||
echo ==================================================
|
||||
python --version >nul 2>&1
|
||||
if errorlevel 1 (
|
||||
py -3 --version >nul 2>&1
|
||||
if errorlevel 1 (
|
||||
echo [오류] Python 또는 py launcher를 찾지 못했습니다.
|
||||
echo Python 3.10 이상을 설치한 뒤 다시 시도하세요.
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
set "PYTHON_EXE=py -3"
|
||||
)
|
||||
|
||||
for /f "delims=" %%V in ('%PYTHON_EXE% -c "import sys; print(\"[정보] Python {}.{}.{}\".format(*sys.version_info[:3])); raise SystemExit(0 if sys.version_info >= (3, 10) else 1)" 2^>nul') do echo %%V
|
||||
if errorlevel 1 (
|
||||
echo [경고] Python 3.10 미만입니다. 동작은 할 수 있지만 권장하지 않습니다.
|
||||
)
|
||||
|
||||
echo ==================================================
|
||||
echo [1/7] Git 최신 코드 가져오기
|
||||
echo ==================================================
|
||||
if exist .git (
|
||||
for /f "delims=" %%B in ('git branch --show-current 2^>nul') do set "BRANCH=%%B"
|
||||
if not defined BRANCH set "BRANCH=main"
|
||||
echo [정보] 현재 브랜치: !BRANCH!
|
||||
git pull --rebase --autostash origin !BRANCH!
|
||||
if errorlevel 1 (
|
||||
echo [경고] git pull 실패. 원격 저장소 또는 네트워크를 확인하세요.
|
||||
echo 로컬 파일로 계속 진행합니다.
|
||||
) else (
|
||||
echo [완료] 최신 코드 반영 완료
|
||||
)
|
||||
) else (
|
||||
echo [경고] .git 폴더가 없습니다. git pull 없이 로컬 파일로 진행합니다.
|
||||
)
|
||||
|
||||
echo ==================================================
|
||||
echo [2/7] .venv 확인
|
||||
echo ==================================================
|
||||
if not exist .venv\Scripts\python.exe (
|
||||
echo [정보] .venv가 없어서 새로 생성합니다.
|
||||
%PYTHON_EXE% -m venv .venv
|
||||
if errorlevel 1 (
|
||||
echo [오류] .venv 생성 실패
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
) else (
|
||||
echo [완료] .venv가 이미 존재합니다.
|
||||
)
|
||||
|
||||
echo ==================================================
|
||||
echo [3/7] 가상환경 활성화
|
||||
echo ==================================================
|
||||
call .venv\Scripts\activate.bat
|
||||
if errorlevel 1 (
|
||||
echo [오류] 가상환경 활성화 실패
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
echo [완료] 가상환경 활성화됨: !VIRTUAL_ENV!
|
||||
|
||||
echo ==================================================
|
||||
echo [4/7] pip 업그레이드
|
||||
echo ==================================================
|
||||
python -m pip install --upgrade pip
|
||||
if errorlevel 1 (
|
||||
echo [오류] pip 업그레이드 실패
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
echo ==================================================
|
||||
echo [5/7] 의존성 설치
|
||||
echo ==================================================
|
||||
if not exist requirements.txt (
|
||||
echo [오류] requirements.txt가 없습니다.
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
python -m pip install -r requirements.txt
|
||||
if errorlevel 1 (
|
||||
echo [오류] requirements.txt 설치 실패
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
echo [완료] 의존성 설치 완료
|
||||
|
||||
echo ==================================================
|
||||
echo [6/7] Playwright 브라우저 설치
|
||||
echo ==================================================
|
||||
python -m playwright install
|
||||
if errorlevel 1 (
|
||||
echo [경고] Playwright install이 실패했습니다.
|
||||
echo 이미 설치되어 있으면 계속 사용합니다.
|
||||
)
|
||||
|
||||
echo ==================================================
|
||||
echo [7/7] Flask 서버 실행
|
||||
echo ==================================================
|
||||
if not exist main.py (
|
||||
echo [오류] main.py를 찾을 수 없습니다.
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
start "BaseBall Flask Server" cmd /k "%PYTHON_EXE% main.py"
|
||||
|
||||
echo [정보] 서버가 올라올 때까지 기다립니다...
|
||||
set "READY=0"
|
||||
for /l %%I in (1,1,60) do (
|
||||
powershell -NoProfile -Command "try { $r = Invoke-WebRequest -Uri '%APP_URL%' -UseBasicParsing -TimeoutSec 2; if ($r.StatusCode -ge 200) { exit 0 } } catch { exit 1 }" >nul 2>&1
|
||||
if not errorlevel 1 (
|
||||
set "READY=1"
|
||||
goto :server_ready
|
||||
)
|
||||
timeout /t 1 /nobreak >nul
|
||||
)
|
||||
|
||||
:server_ready
|
||||
if "!READY!"=="1" (
|
||||
echo [완료] 서버가 시작되었습니다. 브라우저를 엽니다.
|
||||
start "" "%APP_URL%"
|
||||
) else (
|
||||
echo [경고] 서버 시작 확인 시간이 초과되었습니다.
|
||||
echo http://127.0.0.1:5000 를 직접 열어보세요.
|
||||
)
|
||||
|
||||
echo.
|
||||
echo 업데이트와 실행이 끝났습니다.
|
||||
echo 서버 창은 별도로 열려 있습니다.
|
||||
pause
|
||||
Reference in New Issue
Block a user