'use strict';
' Worker: espera a que el escritorio esté listo y arranca los 4 trays (node directo).
Dim sh, fso, node, logFile, ts
Set sh = CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")

logFile = "C:\xampp\htdocs\JobsWorld\data\ecosystem-boot.log"
Sub Log(msg)
  On Error Resume Next
  Dim ts
  ts = Now
  Dim f
  Set f = fso.OpenTextFile(logFile, 8, True)
  f.WriteLine ts & " " & msg
  f.Close
  On Error Goto 0
End Sub

' Esperar escritorio (no bloquear el Run principal)
WScript.Sleep 12000

node = "C:\Program Files\nodejs\node.exe"
If Not fso.FileExists(node) Then
  node = "C:\Program Files (x86)\nodejs\node.exe"
End If
If Not fso.FileExists(node) Then
  Log "ERROR: node.exe no encontrado"
  WScript.Quit 1
End If

Sub EnsureTray(matchNeedle, workDir, scriptName, delayMs)
  On Error Resume Next
  WScript.Sleep delayMs
  Dim wmi, q, procs, p, count
  count = 0
  Set wmi = GetObject("winmgmts:\\.\root\cimv2")
  Set procs = wmi.ExecQuery("SELECT CommandLine FROM Win32_Process WHERE Name='node.exe'")
  For Each p In procs
    If InStr(1, p.CommandLine & "", matchNeedle, 1) > 0 Then count = count + 1
  Next
  If count > 0 Then
    Log "SKIP " & scriptName & " (ya corre)"
    Exit Sub
  End If
  If Not fso.FolderExists(workDir) Then
    Log "ERROR falta carpeta " & workDir
    Exit Sub
  End If
  If Not fso.FileExists(workDir & "\" & scriptName) Then
    Log "ERROR falta " & scriptName
    Exit Sub
  End If
  sh.CurrentDirectory = workDir
  sh.Run """" & node & """ " & scriptName, 0, False
  Log "START " & scriptName
  On Error Goto 0
End Sub

Log "boot worker begin"
' CaptaJaus primero (PM2 ya suele estar)
EnsureTray "captajaus_tray.js", "C:\xampp\htdocs\captajaus\pm2-tray", "captajaus_tray.js", 1000
EnsureTray "alimpiezas_tray.js", "C:\xampp\htdocs\ALimpiezas\tools\tray", "alimpiezas_tray.js", 2500
EnsureTray "jobsworld_tray.js", "C:\xampp\htdocs\JobsWorld\scripts\tray", "jobsworld_tray.js", 2500
EnsureTray "royalbroker_tray.js", "C:\Users\Paterna\Desktop\Royal Broker BERTO\indicadorFenix\RoyalBrokerBot\tray", "royalbroker_tray.js", 2500
Log "boot worker end"
