#!/bin/bash # ============================================================================== # Wallarm Deployment Bootstrap # ============================================================================== # Installs Python 3.12 via pyenv (cross-distro), then runs deploy.py. # curl -fsSL ".../setup.sh" | bash # sudo /opt/fw/deploy.py # ============================================================================== set -euo pipefail BOLD='\033[1m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'; RED='\033[0;31m'; NC='\033[0m' REPO="https://git.sechpoint.app/customer-engineering/wallarm/raw/branch/main/python" WALLARM_DIR="/opt/fw" echo -e "${BOLD}Wallarm Bootstrap${NC}" # ── Install curl/git if missing ─────────────────────────────────────── if ! command -v curl >/dev/null 2>&1 && ! command -v wget >/dev/null 2>&1; then apt-get update -qq 2>/dev/null && apt-get install -y -qq curl 2>/dev/null || true fi # ── Install pyenv + Python 3.12 ─────────────────────────────────────── PYTHON_BIN="" if command -v python3 >/dev/null 2>&1 && python3 -c "import sys; exit(0 if sys.version_info >= (3,10) else 1)" 2>/dev/null; then PYTHON_BIN="python3" elif [ -f "$HOME/.pyenv/versions/3.12.0/bin/python3" ]; then PYTHON_BIN="$HOME/.pyenv/versions/3.12.0/bin/python3" else echo -e "${YELLOW}Installing pyenv + Python 3.12...${NC}" if ! command -v git >/dev/null 2>&1; then apt-get update -qq 2>/dev/null && apt-get install -y -qq git 2>/dev/null || true fi # Install build deps apt-get install -y -qq make build-essential libssl-dev zlib1g-dev \ libbz2-dev libreadline-dev libsqlite3-dev libncursesw5-dev \ xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev 2>/dev/null || true curl -fsSL https://pyenv.run | bash 2>/dev/null export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init -)" pyenv install 3.12.0 -s 2>/dev/null pyenv global 3.12.0 PYTHON_BIN="$HOME/.pyenv/versions/3.12.0/bin/python3" fi echo -e "${GREEN}Python: $($PYTHON_BIN --version)${NC}" # ── Download deploy.py ──────────────────────────────────────────────── mkdir -p "$WALLARM_DIR" if command -v curl >/dev/null 2>&1; then curl -fsSL "${REPO}/deploy.py" -o "${WALLARM_DIR}/deploy.py" else wget -q "${REPO}/deploy.py" -O "${WALLARM_DIR}/deploy.py" fi chmod +x "${WALLARM_DIR}/deploy.py" echo echo -e "${GREEN}${BOLD}Ready!${NC}" echo -e " ${GREEN}sudo ${PYTHON_BIN} /opt/fw/deploy.py${NC}"