Files
crypto-trader/setup.sh
2026-05-03 23:37:55 -04:00

58 lines
1.7 KiB
Bash

#!/usr/bin/env bash
# Sets up a Python virtual environment and installs dependencies.
# Run once after cloning: bash setup.sh
set -euo pipefail
MIN_PYTHON_MINOR=8
# Prefer python3.10+ if available, fall back to whatever python3 is present
if command -v python3.12 &>/dev/null; then PYTHON=python3.12
elif command -v python3.11 &>/dev/null; then PYTHON=python3.11
elif command -v python3.10 &>/dev/null; then PYTHON=python3.10
elif command -v python3.9 &>/dev/null; then PYTHON=python3.9
elif command -v python3.8 &>/dev/null; then PYTHON=python3.8
elif command -v python3 &>/dev/null; then PYTHON=python3
else
echo "ERROR: python3 not found. Install it with: sudo apt install python3 python3-venv python3-pip"
exit 1
fi
PYVER=$($PYTHON -c "import sys; print(sys.version_info.minor)")
if [ "$PYVER" -lt "$MIN_PYTHON_MINOR" ]; then
echo "ERROR: Python 3.$MIN_PYTHON_MINOR or newer required (found 3.$PYVER)"
exit 1
fi
echo "Using $($PYTHON --version)"
# Create virtual environment
if [ ! -d venv ]; then
$PYTHON -m venv venv
echo "Created virtual environment in ./venv"
else
echo "Virtual environment already exists, skipping creation"
fi
# Install dependencies
./venv/bin/pip install --upgrade pip -q
./venv/bin/pip install -r requirements.txt -q
echo "Dependencies installed"
# Create .env if missing
if [ ! -f .env ]; then
cp .env.example .env
chmod 600 .env
echo ""
echo "Created .env — edit it now and add your Kraken API keys:"
echo " nano .env"
else
echo ".env already exists"
fi
echo ""
echo "Setup complete. To run the bot in paper trading mode:"
echo " ./venv/bin/python bot.py"
echo ""
echo "To go live:"
echo " ./venv/bin/python bot.py --live"