fix(windows): run bundled openclaw CLI/TUI via node.exe to restore terminal input (#571)
This commit is contained in:
@@ -14,4 +14,13 @@ case "$1" in
|
||||
esac
|
||||
|
||||
export OPENCLAW_EMBEDDED_IN="ClawX"
|
||||
ELECTRON_RUN_AS_NODE=1 exec "$INSTALL_DIR/ClawX.exe" "$INSTALL_DIR/resources/openclaw/openclaw.mjs" "$@"
|
||||
NODE_EXE="$INSTALL_DIR/resources/bin/node.exe"
|
||||
OPENCLAW_ENTRY="$INSTALL_DIR/resources/openclaw/openclaw.mjs"
|
||||
|
||||
if [ -f "$NODE_EXE" ]; then
|
||||
if "$NODE_EXE" -e 'const [maj,min]=process.versions.node.split(".").map(Number);process.exit((maj>22||maj===22&&min>=16)?0:1)' >/dev/null 2>&1; then
|
||||
exec "$NODE_EXE" "$OPENCLAW_ENTRY" "$@"
|
||||
fi
|
||||
fi
|
||||
|
||||
ELECTRON_RUN_AS_NODE=1 exec "$INSTALL_DIR/ClawX.exe" "$OPENCLAW_ENTRY" "$@"
|
||||
|
||||
@@ -15,9 +15,22 @@ rem on non-English Windows (e.g. Chinese CP936). Save the previous codepage to r
|
||||
for /f "tokens=2 delims=:." %%a in ('chcp') do set /a "_CP=%%a" 2>nul
|
||||
chcp 65001 >nul 2>&1
|
||||
|
||||
set ELECTRON_RUN_AS_NODE=1
|
||||
set OPENCLAW_EMBEDDED_IN=ClawX
|
||||
"%~dp0..\..\ClawX.exe" "%~dp0..\openclaw\openclaw.mjs" %*
|
||||
set "NODE_EXE=%~dp0..\bin\node.exe"
|
||||
set "OPENCLAW_ENTRY=%~dp0..\openclaw\openclaw.mjs"
|
||||
|
||||
set "_USE_BUNDLED_NODE=0"
|
||||
if exist "%NODE_EXE%" (
|
||||
"%NODE_EXE%" -e "const [maj,min]=process.versions.node.split('.').map(Number);process.exit((maj>22||maj===22&&min>=16)?0:1)" >nul 2>&1
|
||||
if not errorlevel 1 set "_USE_BUNDLED_NODE=1"
|
||||
)
|
||||
|
||||
if "%_USE_BUNDLED_NODE%"=="1" (
|
||||
"%NODE_EXE%" "%OPENCLAW_ENTRY%" %*
|
||||
) else (
|
||||
set ELECTRON_RUN_AS_NODE=1
|
||||
"%~dp0..\..\ClawX.exe" "%OPENCLAW_ENTRY%" %*
|
||||
)
|
||||
set _EXIT=%ERRORLEVEL%
|
||||
|
||||
if defined _CP chcp %_CP% >nul 2>&1
|
||||
|
||||
Reference in New Issue
Block a user