41 lines
1.5 KiB
Python
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()
|