@echo off
setlocal enabledelayedexpansion
title Tracker Daemon
cd /d "%~dp0"

echo [daemon] Working dir: %CD%
echo [daemon] Searching node.exe...

set "NODE_EXE="

rem --- 1. PATH (если node установлен глобально) ---
for /f "delims=" %%i in ('where node 2^>nul') do (
    set "NODE_EXE=%%i"
    goto :found
)

rem --- 2. OSPanel: modules/nodejs (несколько возможных мест) ---
for %%p in (
    "%~dp0..\..\modules\nodejs\node.exe"
    "%~dp0..\..\..\modules\nodejs\node.exe"
    "%~dp0..\..\..\..\modules\nodejs\node.exe"
    "C:\OSPanel\modules\nodejs\node.exe"
    "C:\OSPanel\system\nodejs\node.exe"
) do (
    if exist "%%~p" (
        set "NODE_EXE=%%~p"
        goto :found
    )
)

rem --- 3. Стандартные установки Windows ---
for %%p in (
    "%ProgramFiles%\nodejs\node.exe"
    "%ProgramFiles(x86)%\nodejs\node.exe"
    "%LOCALAPPDATA%\Programs\nodejs\node.exe"
) do (
    if exist "%%~p" (
        set "NODE_EXE=%%~p"
        goto :found
    )
)

rem --- 4. nvm for Windows ---
if exist "%APPDATA%\nvm\node.exe" (
    set "NODE_EXE=%APPDATA%\nvm\node.exe"
    goto :found
)
if exist "%NVM_HOME%\node.exe" (
    set "NODE_EXE=%NVM_HOME%\node.exe"
    goto :found
)
if defined NVM_SYMLINK if exist "%NVM_SYMLINK%\node.exe" (
    set "NODE_EXE=%NVM_SYMLINK%\node.exe"
    goto :found
)

rem --- 5. Не нашли ---
echo.
echo ============================================================
echo   [ERROR] Node.js not found!
echo ============================================================
echo.
echo   Install Node.js LTS from https://nodejs.org/
echo   OR enable "Node.js" module in OSPanel (Modules menu).
echo.
echo   After install, either add node.exe to PATH, or
echo   open this file and set NODE_EXE manually:
echo     %~dp0start.bat
echo.
echo   Current PATH:
echo   %PATH%
echo.
echo ============================================================
pause
exit /b 1

:found
echo [daemon] Using: !NODE_EXE!
echo [daemon] Starting daemon.js...
echo.
"!NODE_EXE!" "%~dp0daemon.js"
set "EXITCODE=%ERRORLEVEL%"
echo.
if not "%EXITCODE%"=="0" (
    echo [daemon] Exited with error code %EXITCODE%.
) else (
    echo [daemon] Stopped.
)
pause