97 lines
2.1 KiB
Batchfile
97 lines
2.1 KiB
Batchfile
@echo off
|
|
setlocal
|
|
cd /D "%~dp0"
|
|
echo This script updates the Beszel agent to the latest version from the Github repository
|
|
echo.
|
|
|
|
echo Checking adminstrative rights
|
|
rem from https://stackoverflow.com/questions/7985755/how-to-detect-if-cmd-is-running-as-administrator-has-elevated-privileges
|
|
net session >nul 2>&1
|
|
if %errorlevel% equ 0 (
|
|
echo Administrative rights check OK
|
|
) else (
|
|
echo You are NOT Administrator. Start the script from an administrative cmd.exe shell...
|
|
goto end
|
|
)
|
|
|
|
call env.cmd
|
|
|
|
where winget.exe >nul 2>&1
|
|
if %errorlevel% NEQ 0 (
|
|
echo Winget not found, install Winget or use a compatible OS: Win 10 Client OS or later
|
|
goto end
|
|
) else (
|
|
echo Winget executable found
|
|
)
|
|
|
|
where go.exe >nul 2>&1
|
|
if %errorlevel% NEQ 0 (
|
|
echo Installing Go with Winget
|
|
winget install GoLang.Go >nul 2>&1
|
|
) else (
|
|
echo Go executable found
|
|
)
|
|
|
|
where git.exe >nul 2>&1
|
|
if %errorlevel% NEQ 0 (
|
|
echo Installing Git with Winget
|
|
winget install Git.Git >nul 2>&1
|
|
) else (
|
|
echo Git executable found
|
|
)
|
|
|
|
if exist .\beszel (
|
|
echo Subdirectory beszel already exists, it has to be deleted.
|
|
echo - Hit Crtl+c to exit if you don't want the directory to be deleted.
|
|
echo - Hit any other key to continue
|
|
pause >nul 2>&1
|
|
echo Deleting beszel subdirectory
|
|
rd /q/s .\beszel >nul 2>&1
|
|
)
|
|
|
|
:proceed
|
|
echo Cloning Beszel repository from Github
|
|
git clone https://github.com/henrygd/beszel.git >nul 2>&1
|
|
if %errorlevel% NEQ 0 (
|
|
echo Cloning repository failed.
|
|
goto end
|
|
)
|
|
|
|
cd .\beszel\beszel\cmd\agent
|
|
|
|
echo Building agent
|
|
set GOOS=windows
|
|
set GOARCH=amd64
|
|
set CGO_ENABLED=0
|
|
go build -ldflags "-w -s" . >nul 2>&1
|
|
if %errorlevel% NEQ 0 (
|
|
echo Something went wrong
|
|
goto end
|
|
) else (
|
|
echo Build successful
|
|
)
|
|
|
|
cd /D "%~dp0"
|
|
|
|
echo Stopping Beszel agent service
|
|
net stop %SERVICENAME% >nul 2>&1
|
|
if %errorlevel% NEQ 0 (
|
|
echo Failed to stop Beszel agent service
|
|
goto end
|
|
)
|
|
|
|
echo Copying new agent
|
|
copy .\beszel\beszel\cmd\agent\agent.exe %AGENTEXE% >nul 2>&1
|
|
if %errorlevel% NEQ 0 (
|
|
echo Failed to copy agent.exe
|
|
)
|
|
|
|
echo Starting Beszel agent service
|
|
net start %SERVICENAME% >nul 2>&1
|
|
if %errorlevel% NEQ 0 (
|
|
echo Failed to start Beszel agent service
|
|
goto end
|
|
)
|
|
|
|
:end
|
|
endlocal |