spawn/ionos/plandex.sh
A 12c2f7a8cf
feat: Add 12 missing IONOS agent scripts (#317)
Implemented the following IONOS cloud combinations:
- ionos/openclaw
- ionos/nanoclaw
- ionos/codex
- ionos/interpreter
- ionos/gemini
- ionos/amazonq
- ionos/cline
- ionos/gptme
- ionos/opencode
- ionos/plandex
- ionos/kilocode
- ionos/continue

All scripts follow the standard IONOS pattern:
1. Source ionos/lib/common.sh with local/remote fallback
2. Resolve IONOS credentials (IONOS_USERNAME, IONOS_PASSWORD)
3. Generate SSH key
4. Create server with cloud-init
5. Wait for SSH and cloud-init completion
6. Install agent (npm, pip, or curl installer)
7. Get OpenRouter API key via OAuth
8. Inject environment variables
9. Launch interactive session

Updated manifest.json to mark all 12 combinations as implemented.

Agent: gap-filler-4

Co-authored-by: B <6723574+louisgv@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-10 18:00:35 -08:00

65 lines
2 KiB
Bash

#!/bin/bash
set -eo pipefail
# Source common functions - try local file first, fall back to remote
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" 2>/dev/null && pwd)"
# shellcheck source=ionos/lib/common.sh
if [[ -f "${SCRIPT_DIR}/lib/common.sh" ]]; then
source "${SCRIPT_DIR}/lib/common.sh"
else
eval "$(curl -fsSL https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/ionos/lib/common.sh)"
fi
log_info "Plandex on IONOS Cloud"
echo ""
# 1. Resolve IONOS credentials
ensure_ionos_credentials
# 2. Generate SSH key
ensure_ssh_key
# 3. Get server name and create server
SERVER_NAME=$(get_server_name)
create_server "${SERVER_NAME}"
# 4. Wait for SSH and cloud-init
verify_server_connectivity "${IONOS_SERVER_IP}"
wait_for_cloud_init "${IONOS_SERVER_IP}" 60
# 5. Install Plandex
log_warn "Installing Plandex..."
if ! run_server "${IONOS_SERVER_IP}" "command -v plandex" >/dev/null 2>&1; then
run_server "${IONOS_SERVER_IP}" "curl -sL https://plandex.ai/install.sh | bash"
fi
# Verify installation succeeded
if ! run_server "${IONOS_SERVER_IP}" "command -v plandex &> /dev/null && plandex version &> /dev/null"; then
log_error "Plandex installation verification failed"
log_error "The 'plandex' command is not available or not working properly on server ${IONOS_SERVER_IP}"
exit 1
fi
log_info "Plandex installation verified successfully"
# 6. Get OpenRouter API key
echo ""
if [[ -n "${OPENROUTER_API_KEY:-}" ]]; then
log_info "Using OpenRouter API key from environment"
else
OPENROUTER_API_KEY=$(get_openrouter_api_key_oauth 5180)
fi
log_warn "Setting up environment variables..."
inject_env_vars_ssh "${IONOS_SERVER_IP}" upload_file run_server \
"OPENROUTER_API_KEY=${OPENROUTER_API_KEY}"
echo ""
log_info "IONOS server setup completed successfully!"
log_info "Server: ${SERVER_NAME} (ID: ${IONOS_SERVER_ID}, IP: ${IONOS_SERVER_IP})"
echo ""
# 7. Start Plandex interactively
log_warn "Starting Plandex..."
sleep 1
clear
interactive_session "${IONOS_SERVER_IP}" "source ~/.zshrc && plandex"