@echo on
:: Verifică dacă scriptul este rulat cu drepturi de administrator
net session >nul 2>&1
if %errorlevel% neq 0 (
    echo Nu sunt privilegii de administrator. Incercati din nou...
    powershell -Command "Start-Process cmd.exe -ArgumentList '/c %~f0' -Verb runAs"
    exit /b
)
timeout /t 5 >nul

echo ***********************
echo Pornire script Node.js Server
echo ***********************

set NODE_PATH="C:\Program Files\nodejs\node.exe"
echo NODE_PATH setat la %NODE_PATH%

set NSSM_PATH=%~dp0nssm\win64
echo NSSM_PATH setat la %NSSM_PATH%

:: Creează serviciul NodeJsServer
echo Creare serviciu NodeJsServer...
"%NSSM_PATH%\nssm.exe" install NodeJsServer %NODE_PATH%
if errorlevel 1 (
  echo Eroare la crearea serviciului NodeJsServer!
  pause
  exit /b 1
)

echo Setare director de lucru...
"%NSSM_PATH%\nssm.exe" set NodeJsServer AppDirectory "%~dp0nodejs"
if errorlevel 1 (
  echo Eroare la setarea directorului de lucru!
  pause
  exit /b 1
)

echo Setare script server.js...
"%NSSM_PATH%\nssm.exe" set NodeJsServer AppParameters "%~dp0nodejs\server.js"
if errorlevel 1 (
  echo Eroare la setarea scriptului server.js!
  pause
  exit /b 1
)

echo Configurare serviciu pentru a nu folosi consolă...
"%NSSM_PATH%\nssm.exe" set NodeJsServer AppNoConsole 1
if errorlevel 1 (
  echo Eroare la setarea AppNoConsole!
  pause
  exit /b 1
)

:: Opțional: redirecționează ieșirile pentru diagnosticare
if not exist "%~dp0logs" mkdir "%~dp0logs"
"%NSSM_PATH%\nssm.exe" set NodeJsServer AppStdout "%~dp0logs\server.log"
"%NSSM_PATH%\nssm.exe" set NodeJsServer AppStderr "%~dp0logs\server_error.log"

echo Pornire serviciu NodeJsServer...
"%NSSM_PATH%\nssm.exe" start NodeJsServer
if errorlevel 1 (
  echo Eroare la pornirea serviciului!
  pause
  exit /b 1
)

echo Serviciul NodeJsServer a fost creat si pornit cu succes.
pause
exit
