Files
Gesti-n-Reservas-Naturcalab…/scripts/start_dev_server.py

41 lines
1.5 KiB
Python

import subprocess
import os
import sys
import time
def main():
print("Iniciando script de arranque del servidor...")
# 1. Verificar node_modules
if not os.path.exists("node_modules"):
print("node_modules no encontrado. Ejecutando npm install...")
subprocess.check_call(["npm", "install"])
# 2. Ejecutar npm run dev
# Usamos Popen para que el script de python pueda gestionar el proceso o mantenerse vivo si es necesario.
# En este entorno, queremos que el comando persista.
# Sin embargo, si este script de python termina, el subproceso podría morir.
# Vamos a ejecutarlo y hacer stream de la salida.
print("Ejecutando 'npm run dev'...")
try:
# shell=True en Windows, pero en Mac/Linux mejor lista de argumentos.
# process = subprocess.Popen(["npm", "run", "dev"], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, text=True, bufsize=1)
# Simplemente usaremos run_command del agente para la persistencia real,
# pero para cumplir el protocolo, este script lanza el comando.
# Si queremos que este script DE PYTHON sea el que corre, debe tener un bucle.
process = subprocess.Popen(["npm", "run", "dev"], stdout=sys.stdout, stderr=sys.stderr)
process.wait()
except KeyboardInterrupt:
print("\nDeteniendo servidor...")
process.terminate()
except Exception as e:
print(f"Error al ejecutar el servidor: {e}")
sys.exit(1)
if __name__ == "__main__":
main()