51 lines
1.8 KiB
Batchfile
51 lines
1.8 KiB
Batchfile
@echo off
|
|
chcp 65001 >nul
|
|
title RIPS Manager - Auto Update
|
|
|
|
:: ---- 1. Asegurar Python portable ----
|
|
if not exist python\python.exe (
|
|
echo Descargando Python portable...
|
|
powershell -Command "& {Invoke-WebRequest -Uri 'https://www.python.org/ftp/python/3.12.9/python-3.12.9-embed-amd64.zip' -OutFile 'python.zip'}"
|
|
powershell -Command "& {Expand-Archive -Path 'python.zip' -DestinationPath 'python' -Force}"
|
|
del python.zip
|
|
set PTH_FILE=%~dp0python\python312._pth
|
|
powershell -Command "& {(Get-Content '%PTH_FILE%') -replace '#import site','import site' | Set-Content '%PTH_FILE%'}"
|
|
python\python.exe -c "import urllib.request; exec(urllib.request.urlopen('https://bootstrap.pypa.io/get-pip.py').read())"
|
|
)
|
|
|
|
:: ---- 2. Instalar watchdog para auto-pull ----
|
|
python\python.exe -m pip install -q watchdog 2>nul
|
|
|
|
:: ---- 3. Pull inicial ----
|
|
echo [%date% %time%] Pull inicial...
|
|
git pull
|
|
python\python.exe -m pip install -q -r requirements.txt 2>nul
|
|
|
|
:: ---- 4. Arrancar con auto-pull cada 60s ----
|
|
echo.
|
|
echo ==========================================
|
|
echo Servidor: http://localhost:8080
|
|
echo Auto-update cada 60 segundos
|
|
echo Cerra esta ventana para detener
|
|
echo ==========================================
|
|
|
|
python\python.exe -c "
|
|
import uvicorn, sys, subprocess, threading, time
|
|
from pathlib import Path
|
|
|
|
root = Path(__file__).parent.resolve()
|
|
sys.path.insert(0, str(root))
|
|
|
|
def auto_puller():
|
|
while True:
|
|
time.sleep(60)
|
|
try:
|
|
subprocess.run(['git', 'pull'], cwd=root, capture_output=True, text=True, timeout=30)
|
|
subprocess.run([sys.executable, '-m', 'pip', 'install', '-q', '-r', 'requirements.txt'], cwd=root, capture_output=True, timeout=30)
|
|
except:
|
|
pass
|
|
|
|
threading.Thread(target=auto_puller, daemon=True).start()
|
|
uvicorn.run('main:app', host='0.0.0.0', port=8080, reload=True)
|
|
"
|