mirror of
https://github.com/OpenRouterTeam/spawn.git
synced 2026-04-28 03:49:31 +00:00
14 agent shim scripts in sh/aws/ and sh/hetzner/ were missing error handlers on the curl command that downloads the JS bundle from GitHub releases. If the download failed (network issue, 404, etc.), the script would silently proceed to exec an empty/corrupt file via bun, producing a confusing error instead of a clear "Failed to download" message. All other clouds (GCP, Daytona, DigitalOcean, Sprite) already had this error handling pattern. This brings AWS and Hetzner into consistency. Agent: code-health Co-authored-by: B <6723574+louisgv@users.noreply.github.com> Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
33 lines
1.4 KiB
Bash
Executable file
33 lines
1.4 KiB
Bash
Executable file
#!/bin/bash
|
|
set -eo pipefail
|
|
|
|
# Thin shim: ensures bun is available, runs bundled aws.js (local or from GitHub release)
|
|
|
|
_ensure_bun() {
|
|
if command -v bun &>/dev/null; then return 0; fi
|
|
printf '\033[0;36mInstalling bun...\033[0m\n' >&2
|
|
curl -fsSL --show-error https://bun.sh/install | bash >/dev/null || { printf '\033[0;31mFailed to install bun\033[0m\n' >&2; exit 1; }
|
|
export PATH="$HOME/.bun/bin:$PATH"
|
|
command -v bun &>/dev/null || { printf '\033[0;31mbun not found after install\033[0m\n' >&2; exit 1; }
|
|
}
|
|
|
|
_ensure_bun
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" 2>/dev/null && pwd)"
|
|
|
|
# SPAWN_CLI_DIR override — force local source (used by e2e tests)
|
|
if [[ -n "${SPAWN_CLI_DIR:-}" && -f "$SPAWN_CLI_DIR/packages/cli/src/aws/main.ts" ]]; then
|
|
exec bun run "$SPAWN_CLI_DIR/packages/cli/src/aws/main.ts" opencode "$@"
|
|
fi
|
|
|
|
# Local checkout — run from source
|
|
if [[ -n "$SCRIPT_DIR" && -f "$SCRIPT_DIR/../../packages/cli/src/aws/main.ts" ]]; then
|
|
exec bun run "$SCRIPT_DIR/../../packages/cli/src/aws/main.ts" opencode "$@"
|
|
fi
|
|
|
|
# Remote — download and run compiled TypeScript bundle
|
|
AWS_JS=$(mktemp)
|
|
trap 'rm -f "$AWS_JS"' EXIT
|
|
curl -fsSL "https://github.com/OpenRouterTeam/spawn/releases/download/aws-latest/aws.js" -o "$AWS_JS" \
|
|
|| { printf '\033[0;31mFailed to download aws.js\033[0m\n' >&2; exit 1; }
|
|
exec bun run "$AWS_JS" opencode "$@"
|