@echo off
setlocal

rem ============================================================
rem Persist USEREMAIL for the logged-on user (setx user scope).
rem Keep DomainPart in sync with edge_chrome_extension.bat when whoami /upn is unavailable.
rem ============================================================
set "DomainPart=autoset.example.com"

echo ==============================
echo  set_useremail_env - USEREMAIL
echo ==============================
echo.

echo Resolving USEREMAIL ...

set "UserEmail="
for /f "usebackq delims=" %%i in (`whoami /upn 2^>nul`) do set "UserEmail=%%i"
if defined UserEmail (
    echo   Source: whoami /upn
) else if defined USERNAME (
    set "UserEmail=%USERNAME%@%DomainPart%"
    echo   Source: USERNAME + DomainPart
) else (
    echo   USERNAME not defined. Trying hostname fallbacks...
    set "TempUser="
    if defined COMPUTERNAME (
        set "TempUser=%COMPUTERNAME%"
    ) else if defined HOSTNAME (
        set "TempUser=%HOSTNAME%"
    ) else (
        if defined LOGONSERVER (
            set "TempUser=%LOGONSERVER:\=%"
        ) else (
            set "TempUser=unknown"
        )
    )
    set "UserEmail=%TempUser%@%DomainPart%"
)

echo   USEREMAIL will be set to: %UserEmail%
echo.

setx USEREMAIL "%UserEmail%"
if errorlevel 1 (
    echo [ERROR] setx USEREMAIL failed.
    rem pause
    exit /b 1
)

endlocal & set "USEREMAIL=%UserEmail%"

echo Current session updated. New Command Prompt windows will also see USEREMAIL.
echo.
rem pause
exit /b 0
