spawn/digitalocean
Sprite 0ad6680f1f refactor: extract duplicate get_server_name logic to shared function
- Add get_resource_name() to shared/common.sh
  - Generic function for env-var-or-prompt pattern
  - Uses indirect expansion ${!var} for dynamic env vars
  - Preserves exact behavior: env check → prompt → error

- Update 9 cloud providers to use shared function:
  - aws-lightsail: LIGHTSAIL_SERVER_NAME
  - digitalocean: DO_DROPLET_NAME (with validation)
  - gcp: GCP_INSTANCE_NAME
  - hetzner: HETZNER_SERVER_NAME (with validation)
  - linode: LINODE_SERVER_NAME (with validation)
  - sprite: SPRITE_NAME (with validation)
  - vultr: VULTR_SERVER_NAME (with validation)
  - e2b: E2B_SANDBOX_NAME
  - modal: MODAL_SANDBOX_NAME

- Reduces code duplication: ~120 lines → ~25 lines
- Maintains backward compatibility (env vars, prompts, errors unchanged)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-08 01:16:20 +00:00
..
lib refactor: extract duplicate get_server_name logic to shared function 2026-02-08 01:16:20 +00:00
aider.sh Use ${VAR:-} for all optional env var checks (#28) 2026-02-07 16:28:12 -08:00
amazonq.sh Use ${VAR:-} for all optional env var checks (#28) 2026-02-07 16:28:12 -08:00
claude.sh Use ${VAR:-} for all optional env var checks (#28) 2026-02-07 16:28:12 -08:00
cline.sh Use ${VAR:-} for all optional env var checks (#28) 2026-02-07 16:28:12 -08:00
codex.sh Use ${VAR:-} for all optional env var checks (#28) 2026-02-07 16:28:12 -08:00
gemini.sh Use ${VAR:-} for all optional env var checks (#28) 2026-02-07 16:28:12 -08:00
goose.sh Use ${VAR:-} for all optional env var checks (#28) 2026-02-07 16:28:12 -08:00
interpreter.sh Use ${VAR:-} for all optional env var checks (#28) 2026-02-07 16:28:12 -08:00
nanoclaw.sh Use ${VAR:-} for all optional env var checks (#28) 2026-02-07 16:28:12 -08:00
openclaw.sh Use ${VAR:-} for all optional env var checks (#28) 2026-02-07 16:28:12 -08:00
README.md Add E2B + Modal sandbox providers, restructure README (#22) 2026-02-07 14:11:04 -08:00

DigitalOcean

DigitalOcean Droplets via REST API. DigitalOcean

Agents

Claude Code

bash <(curl -fsSL https://openrouter.ai/lab/spawn/digitalocean/claude.sh)

OpenClaw

bash <(curl -fsSL https://openrouter.ai/lab/spawn/digitalocean/openclaw.sh)

NanoClaw

bash <(curl -fsSL https://openrouter.ai/lab/spawn/digitalocean/nanoclaw.sh)

Aider

bash <(curl -fsSL https://openrouter.ai/lab/spawn/digitalocean/aider.sh)

Goose

bash <(curl -fsSL https://openrouter.ai/lab/spawn/digitalocean/goose.sh)

Codex CLI

bash <(curl -fsSL https://openrouter.ai/lab/spawn/digitalocean/codex.sh)

Open Interpreter

bash <(curl -fsSL https://openrouter.ai/lab/spawn/digitalocean/interpreter.sh)

Gemini CLI

bash <(curl -fsSL https://openrouter.ai/lab/spawn/digitalocean/gemini.sh)

Amazon Q CLI

bash <(curl -fsSL https://openrouter.ai/lab/spawn/digitalocean/amazonq.sh)

Cline

bash <(curl -fsSL https://openrouter.ai/lab/spawn/digitalocean/cline.sh)

Non-Interactive Mode

DO_DROPLET_NAME=dev-mk1 \
DO_API_TOKEN=your-token \
OPENROUTER_API_KEY=sk-or-v1-xxxxx \
  bash <(curl -fsSL https://openrouter.ai/lab/spawn/digitalocean/claude.sh)