#!/usr/bin/env bash
# Pyronet GPU Node installer (dummy / demo)
# Educational clone — not a real installer.
#   curl -fsSL https://pyronet.example/install.sh | bash

set -euo pipefail

PYRO_VERSION="${PYRO_VERSION:-0.1.0-demo}"
PYRO_HOME="${PYRO_HOME:-$HOME/.pyronet}"
PYRO_NETWORK="${PYRO_NETWORK:-mainnet-beta}"

bold() { printf "\033[1m%s\033[0m\n" "$*"; }
flame() { printf "\033[38;5;208m🔥 %s\033[0m\n" "$*"; }

flame "Pyronet Node Installer v${PYRO_VERSION}"
bold  "Igniting the fire of decentralized compute..."

step() { printf "\033[38;5;46m[%d/6]\033[0m %s\n" "$1" "$2"; }

step 1 "Detecting GPU hardware..."
if command -v nvidia-smi >/dev/null 2>&1; then
  nvidia-smi --query-gpu=name,memory.total,driver_version --format=csv,noheader
else
  echo "  WARNING: nvidia-smi not found. NVIDIA driver required."
fi

step 2 "Checking CUDA toolkit..."
echo "  CUDA >= 12.0 required for $PYRO_NETWORK"

step 3 "Creating node directory at $PYRO_HOME..."
mkdir -p "$PYRO_HOME"/{bin,logs,jobs,keystore}

step 4 "Downloading pyronet-agent binary..."
echo "  → $PYRO_HOME/bin/pyronet-agent (sha256: demo-placeholder)"

step 5 "Generating node keypair..."
NODE_ID="node_$(date +%s%N | sha256sum | head -c 12)"
echo "  Node ID: $NODE_ID"
echo "  Stake address: <connect wallet at pyronet.example/dashboard>"

step 6 "Registering with $PYRO_NETWORK..."
echo "  Job router: relay-fra.pyronet.example:9443"
echo "  Proof-of-compute: enabled"

cat <<EOF

  $(flame "Node ready.")

  Next steps:
    1. Open https://pyronet.example/dashboard
    2. Connect wallet, stake 1000 \$PYRO to activate
    3. pyronet-agent start --foreground

  Earnings paid hourly in \$PYRO. Network fee: 5%.
  Docs: https://docs.pyronet.example/providers
EOF
