




















@@ -111,8 +111,6 @@ Stop-OpenClawGatewayProcesses
111111$env:OPENCLAW_DISABLE_BUNDLED_PLUGINS = '1'
112112Invoke-OpenClaw update --tag ${psSingleQuote(input.updateTarget)} --yes --json --no-restart
113113if ($LASTEXITCODE -ne 0) { throw "openclaw update failed with exit code $LASTEXITCODE" }
114-$version = Invoke-OpenClaw --version
115-$version
116114${windowsVersionCheck(input.expectedNeedle)}
117115Invoke-OpenClaw gateway restart
118116Invoke-OpenClaw gateway status --deep --require-rpc
@@ -189,13 +187,13 @@ function posixVersionCheck(command: string, expectedNeedle: string): string {
189187return `hash -r || true
190188version_deadline=$((SECONDS + 60))
191189while true; do
192- set +e
193- version="$(${command} --version 2>&1)"
194- version_status=$?
195- set -e
196- printf '%s\\n' "$version"
197- if [ "$version_status" -eq 0 ]; then
190+ if version="$(${command} --version 2>&1)"; then
191+ version_status=0
192+ printf '%s\\n' "$version"
198193 break
194+ else
195+ version_status=$?
196+ printf '%s\\n' "$version"
199197 fi
200198 if [ "$SECONDS" -ge "$version_deadline" ]; then
201199 exit "$version_status"
@@ -206,13 +204,13 @@ done`;
206204return `hash -r || true
207205version_deadline=$((SECONDS + 60))
208206while true; do
209- set +e
210- version="$(${command} --version 2>&1)"
211- version_status=$?
212- set -e
213- printf '%s\\n' "$version"
214- if [ "$version_status" -eq 0 ]; then
207+ if version="$(${command} --version 2>&1)"; then
208+ version_status=0
209+ printf '%s\\n' "$version"
215210 case "$version" in *${quotedNeedle}*) break ;; esac
211+ else
212+ version_status=$?
213+ printf '%s\\n' "$version"
216214 fi
217215 if [ "$SECONDS" -ge "$version_deadline" ]; then
218216 if [ "$version_status" -ne 0 ]; then
@@ -227,7 +225,26 @@ done`;
227225228226function windowsVersionCheck(expectedNeedle: string): string {
229227if (!expectedNeedle) {
230-return "";
228+return `$versionDeadline = (Get-Date).AddSeconds(60)
229+while ($true) {
230+ $version = Invoke-OpenClaw --version
231+ $version
232+ if ($LASTEXITCODE -eq 0) { break }
233+ if ((Get-Date) -ge $versionDeadline) { throw "openclaw --version failed with exit code $LASTEXITCODE" }
234+ Start-Sleep -Seconds 2
235+}`;
236+}
237+const expectedPattern = psSingleQuote(`*${expectedNeedle}*`);
238+const mismatch = psSingleQuote(`version mismatch: expected ${expectedNeedle}`);
239+return `$versionDeadline = (Get-Date).AddSeconds(60)
240+while ($true) {
241+ $version = Invoke-OpenClaw --version
242+ $version
243+ if ($LASTEXITCODE -eq 0 -and (($version | Out-String) -like ${expectedPattern})) { break }
244+ if ((Get-Date) -ge $versionDeadline) {
245+ if ($LASTEXITCODE -ne 0) { throw "openclaw --version failed with exit code $LASTEXITCODE" }
246+ throw ${mismatch}
231247 }
232-return `if (($version | Out-String) -notlike ${psSingleQuote(`*${expectedNeedle}*`)}) { throw ${psSingleQuote(`version mismatch: expected ${expectedNeedle}`)} }`;
248+ Start-Sleep -Seconds 2
249+}`;
233250}
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。