#!/usr/bin/env bash set -euo pipefail # One-click setup for ritmex-bot (Linux/macOS) # - Ensures Bun is installed # - Installs dependencies # - Prompts for API credentials # - Generates .env # - Starts the bot main() { require_unix ensure_bun install_deps prompt_env write_env echo echo "✅ Setup complete. Starting ritmex-bot..." echo start_bot } require_unix() { case "$(uname -s)" in Linux|Darwin) ;; *) echo "This script supports only Linux and macOS." >&2; exit 1 ;; esac } ensure_bun() { if command -v bun >/dev/null 2>&1; then echo "✔ Bun found: $(bun --version)" return fi echo "ℹ Bun not found. Installing Bun..." if [ "$(uname -s)" = "Darwin" ] && command -v brew >/dev/null 2>&1; then brew install bun else # Non-interactive install via official script curl -fsSL https://bun.sh/install | bash # shellcheck disable=SC1090 if [ -f "$HOME/.bun/bun" ] || [ -d "$HOME/.bun" ]; then export BUN_INSTALL="$HOME/.bun" export PATH="$BUN_INSTALL/bin:$PATH" fi fi if ! command -v bun >/dev/null 2>&1; then echo "❌ Failed to install Bun. Please install it manually from https://bun.sh" >&2 exit 1 fi echo "✔ Bun installed: $(bun --version)" } install_deps() { echo "Installing dependencies with Bun..." bun install } prompt_env() { echo echo "Please enter your AsterDex API credentials." read -r -p "ASTER_API_KEY: " ASTER_API_KEY read -r -s -p "ASTER_API_SECRET (input hidden): " ASTER_API_SECRET echo read -r -p "TRADE_SYMBOL (default BTCUSDT): " TRADE_SYMBOL || true TRADE_SYMBOL=${TRADE_SYMBOL:-BTCUSDT} # Optional trading parameters read -r -p "TRADE_AMOUNT (default 0.001): " TRADE_AMOUNT || true TRADE_AMOUNT=${TRADE_AMOUNT:-0.001} read -r -p "LOSS_LIMIT (default 0.03): " LOSS_LIMIT || true LOSS_LIMIT=${LOSS_LIMIT:-0.03} read -r -p "KLINE_INTERVAL (default 1m): " KLINE_INTERVAL || true KLINE_INTERVAL=${KLINE_INTERVAL:-1m} } write_env() { local env_file=".env" echo "Writing ${env_file}..." cat > "${env_file}" <