Files
moltbot/scripts/install.cmd
Peter Steinberger e60928d13c ci: verify and sync website installers (#80067)
* ci: verify and sync website installers

* test: fix pi runner boundary test type cast

* fix(installer): scope Windows legacy cleanup to git checkout

* ci: install curl for minimal install-cli smoke

* fix(installer): promote supported Linux node after install

* test(cli): align command hint expectations

* fix(installer): avoid shellcheck warning in node promotion

* fix(installer): sync Linux path hardening

* ci: raise build artifact testbox heap

* test(installer): align PowerShell installer tests
2026-05-09 23:48:49 -04:00

103 lines
2.6 KiB
Batchfile

@echo off
setlocal enabledelayedexpansion
REM OpenClaw Windows CMD installer
REM Usage:
REM curl -fsSL https://openclaw.ai/install.cmd -o install.cmd && install.cmd --no-onboard && del install.cmd
set "TAG=latest"
set "INSTALL_METHOD=npm"
set "NO_ONBOARD=0"
set "NO_GIT_UPDATE=0"
set "DRY_RUN=0"
set "TAG_SET=0"
set "INSTALL_PS1_URL="
:parse_args
if "%~1"=="" goto :args_done
if /i "%~1"=="--help" goto :usage
if /i "%~1"=="--git" set "INSTALL_METHOD=git"
if /i "%~1"=="--npm" set "INSTALL_METHOD=npm"
if /i "%~1"=="--no-onboard" set "NO_ONBOARD=1"
if /i "%~1"=="--no-git-update" set "NO_GIT_UPDATE=1"
if /i "%~1"=="--dry-run" set "DRY_RUN=1"
if /i "%~1"=="--tag" (
if not "%~2"=="" (
set "TAG=%~2"
set "TAG_SET=1"
shift
)
shift
goto :parse_args
)
set "ARG=%~1"
if not "%ARG%"=="" (
if not "%ARG:~0,1%"=="-" (
if "%TAG_SET%"=="0" (
set "TAG=%ARG%"
set "TAG_SET=1"
)
)
)
shift
goto :parse_args
:args_done
curl --version >nul 2>&1
if %ERRORLEVEL% neq 0 (
echo curl is required but not available. Please install curl or use PowerShell installer. >&2
exit /b 1
)
powershell -NoProfile -Command "$PSVersionTable.PSVersion.Major" >nul 2>&1
if %ERRORLEVEL% neq 0 (
echo PowerShell is required but not available. Use install.ps1 directly or install PowerShell. >&2
exit /b 1
)
set "TMP=%TEMP%\openclaw-install.ps1"
REM TMP may include spaces; always quote "%TMP%" when used.
if not "%OPENCLAW_INSTALL_PS1_URL%"=="" set "INSTALL_PS1_URL=%OPENCLAW_INSTALL_PS1_URL%"
if "%INSTALL_PS1_URL%"=="" set "INSTALL_PS1_URL=https://openclaw.ai/install.ps1"
if exist "%INSTALL_PS1_URL%" (
copy /Y "%INSTALL_PS1_URL%" "%TMP%" >nul
) else (
curl -fsSL "%INSTALL_PS1_URL%" -o "%TMP%"
)
if %ERRORLEVEL% neq 0 (
echo Failed to download install.ps1 >&2
exit /b 1
)
set "PS_ARGS=-Tag ""%TAG%"" -InstallMethod ""%INSTALL_METHOD%"""
if "%NO_ONBOARD%"=="1" set "PS_ARGS=%PS_ARGS% -NoOnboard"
if "%NO_GIT_UPDATE%"=="1" set "PS_ARGS=%PS_ARGS% -NoGitUpdate"
if "%DRY_RUN%"=="1" set "PS_ARGS=%PS_ARGS% -DryRun"
if "%DRY_RUN%"=="1" echo [OK] Dry run ^(delegating to install.ps1^)
powershell -NoProfile -ExecutionPolicy Bypass -File "%TMP%" %PS_ARGS%
set "RESULT=%ERRORLEVEL%"
del /f "%TMP%" >nul 2>&1
if %RESULT% neq 0 exit /b %RESULT%
exit /b 0
:usage
echo Usage: install.cmd [options] [tag]
echo.
echo Options:
echo --git Install from git checkout
echo --npm Install via npm ^(default^)
echo --tag <ver> Tag/version to install ^(default: latest^)
echo --no-onboard Skip onboarding
echo --no-git-update Skip git pull for existing checkout
echo --dry-run Print what would happen ^(no changes^)
exit /b 0