Initial commit: monorepo Naturcalabacera reservas (apps/api + apps/web + packages/shared)
This commit is contained in:
40
scripts/start_dev_server.py
Normal file
40
scripts/start_dev_server.py
Normal file
@@ -0,0 +1,40 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user