


























@@ -184,10 +184,45 @@ ${input.auth.apiKeyEnv}=${shellQuote(input.auth.apiKeyValue)} openclaw agent --l
184184}
185185186186function posixVersionCheck(command: string, expectedNeedle: string): string {
187+const quotedNeedle = shellQuote(expectedNeedle);
187188if (!expectedNeedle) {
188-return `${command} --version`;
189+return `hash -r || true
190+version_deadline=$((SECONDS + 60))
191+while 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
198+ break
199+ fi
200+ if [ "$SECONDS" -ge "$version_deadline" ]; then
201+ exit "$version_status"
202+ fi
203+ sleep 2
204+done`;
189205}
190-return `version="$(${command} --version)"; printf '%s\\n' "$version"; case "$version" in *${shellQuote(expectedNeedle)}*) ;; *) echo "version mismatch: expected ${expectedNeedle}" >&2; exit 1 ;; esac`;
206+return `hash -r || true
207+version_deadline=$((SECONDS + 60))
208+while 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
215+ case "$version" in *${quotedNeedle}*) break ;; esac
216+ fi
217+ if [ "$SECONDS" -ge "$version_deadline" ]; then
218+ if [ "$version_status" -ne 0 ]; then
219+ exit "$version_status"
220+ fi
221+ echo "version mismatch: expected ${expectedNeedle}" >&2
222+ exit 1
223+ fi
224+ sleep 2
225+done`;
191226}
192227193228function windowsVersionCheck(expectedNeedle: string): string {
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。