mirror of
https://github.com/fromchat-messenger/app.git
synced 2026-09-22 19:15:05 +03:00
124 lines
3.1 KiB
Batchfile
124 lines
3.1 KiB
Batchfile
@echo off
|
|
setlocal EnableExtensions EnableDelayedExpansion
|
|
|
|
rem Copy packaged Windows installer to the logged-in user's Desktop.
|
|
rem prlctl exec runs as SYSTEM, so do not rely on %%USERPROFILE%%.
|
|
rem
|
|
rem copy-installers-to-desktop.cmd — release setup only
|
|
rem copy-installers-to-desktop.cmd beta — beta2 setup only (cleans desktop)
|
|
|
|
set "DIST=C:\FromChat\app\app\desktop\build\distributions\release"
|
|
set "WIN_DESKTOP="
|
|
set "MODE=%~1"
|
|
|
|
if not exist "%DIST%\" (
|
|
echo WARNING: Release output folder missing: %DIST%
|
|
exit /b 0
|
|
)
|
|
|
|
for /f "skip=1 tokens=1" %%U in ('query user 2^>nul') do (
|
|
if not defined LOGON set "LOGON=%%U"
|
|
)
|
|
if defined LOGON set "WIN_DESKTOP=C:\Users\%LOGON%\Desktop"
|
|
|
|
if not exist "%WIN_DESKTOP%\" (
|
|
for /d %%D in ("C:\Users\*") do (
|
|
if not defined WIN_DESKTOP (
|
|
echo %%~nxD | findstr /i /x "Public Default DefaultAccount WsiAccount" >nul
|
|
if errorlevel 1 if exist "%%D\Desktop\" set "WIN_DESKTOP=%%D\Desktop"
|
|
)
|
|
)
|
|
)
|
|
|
|
if not defined WIN_DESKTOP (
|
|
echo ERROR: Could not resolve Windows user Desktop path
|
|
exit /b 1
|
|
)
|
|
|
|
call :kill_running_installers
|
|
|
|
if /I "%MODE%"=="beta" (
|
|
call :clean_desktop_installers
|
|
set "COPIED=0"
|
|
for %%F in ("%DIST%\FromChat-Setup-*-beta2.exe") do (
|
|
if exist "%%F" (
|
|
call :copy_installer "%%~fF" "%WIN_DESKTOP%"
|
|
if errorlevel 1 exit /b 1
|
|
set "COPIED=1"
|
|
)
|
|
)
|
|
if "!COPIED!"=="0" (
|
|
echo ERROR: No FromChat-Setup-*-beta2.exe found in %DIST%
|
|
exit /b 1
|
|
)
|
|
exit /b 0
|
|
)
|
|
|
|
for %%F in ("%DIST%\FromChat-Portable-*.exe") do (
|
|
if exist "%%F" (
|
|
del /F /Q "%%F" >nul 2>&1
|
|
echo Removed stale portable build output: %%~nxF
|
|
)
|
|
)
|
|
|
|
for %%F in ("%WIN_DESKTOP%\FromChat-Portable-*.exe") do (
|
|
if exist "%%F" (
|
|
del /F /Q "%%F" >nul 2>&1
|
|
echo Removed stale portable artifact: %%~nxF
|
|
)
|
|
)
|
|
|
|
set "COPIED=0"
|
|
for %%F in ("%DIST%\FromChat-Setup-*.exe") do (
|
|
echo %%~nxF | findstr /i /c:"beta" >nul
|
|
if errorlevel 1 (
|
|
if exist "%%F" (
|
|
call :copy_installer "%%~fF" "%WIN_DESKTOP%"
|
|
if errorlevel 1 exit /b 1
|
|
set "COPIED=1"
|
|
)
|
|
)
|
|
)
|
|
|
|
if "!COPIED!"=="0" (
|
|
echo WARNING: No release FromChat-Setup-*.exe found in %DIST%
|
|
)
|
|
|
|
exit /b 0
|
|
|
|
:clean_desktop_installers
|
|
echo Cleaning Desktop installer clutter...
|
|
for %%F in ("%WIN_DESKTOP%\FromChat-Setup*.exe") do (
|
|
if exist "%%F" (
|
|
del /F /Q "%%F" >nul 2>&1
|
|
echo Removed %%~nxF
|
|
)
|
|
)
|
|
for %%F in ("%WIN_DESKTOP%\FromChat-Portable*.exe") do (
|
|
if exist "%%F" (
|
|
del /F /Q "%%F" >nul 2>&1
|
|
echo Removed %%~nxF
|
|
)
|
|
)
|
|
exit /b 0
|
|
|
|
:kill_running_installers
|
|
echo Stopping running FromChat installer processes...
|
|
powershell -NoProfile -Command ^
|
|
"$names = @('fromchat-setup','FromChat-Installer','FromChat-Setup*','FromChat-Portable*');" ^
|
|
"foreach ($n in $names) { Get-Process -Name $n -ErrorAction SilentlyContinue | Stop-Process -Force -ErrorAction SilentlyContinue }" ^
|
|
2>nul
|
|
ping -n 2 127.0.0.1 >nul
|
|
exit /b 0
|
|
|
|
:copy_installer
|
|
set "SRC=%~1"
|
|
set "DEST_DIR=%~2"
|
|
copy /Y "%SRC%" "%DEST_DIR%\" >nul 2>&1
|
|
if errorlevel 1 (
|
|
echo ERROR: Failed to copy %~nx1 to %DEST_DIR% — close the running installer and retry
|
|
exit /b 1
|
|
)
|
|
echo Copied %~nx1 -^> %DEST_DIR%
|
|
exit /b 0
|