#!/usr/bin/env bash
# Firmware CLI Installer
# Usage: curl -fsSL https://usefirmware.com/install.sh | bash

set -e

# Colors
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'

# Configuration
DOWNLOAD_BASE_URL="https://usefirmwarecom-cli.sfo3.cdn.digitaloceanspaces.com/v0.1"
VERSION="0.1"

echo -e "${GREEN}Firmware CLI Installer${NC}"
echo "Version: $VERSION"
echo ""

# Detect OS and architecture
OS=$(uname -s | tr '[:upper:]' '[:lower:]')
ARCH=$(uname -m)

if [ "$ARCH" = "x86_64" ]; then
    ARCH="x64"
elif [ "$ARCH" = "aarch64" ] || [ "$ARCH" = "arm64" ]; then
    ARCH="arm64"
fi

# Determine binary
BINARY_NAME=""
if [ "$OS" = "darwin" ]; then
    if [ "$ARCH" = "arm64" ]; then
        BINARY_NAME="firmware-ok-macos-arm64"
    else
        BINARY_NAME="firmware-ok-macos-x64"
    fi
elif [ "$OS" = "linux" ]; then
    BINARY_NAME="firmware-ok-linux-x64"
else
    echo -e "${RED}Error: Unsupported OS: $OS${NC}"
    echo "For Windows, download from: https://usefirmware.com/downloads"
    exit 1
fi

DOWNLOAD_URL="$DOWNLOAD_BASE_URL/$BINARY_NAME"

echo "Detected: $OS $ARCH"
echo "Downloading: $BINARY_NAME"
echo ""

# Create temp directory
TMP_DIR=$(mktemp -d)
trap "rm -rf $TMP_DIR" EXIT

# Download
echo -e "${YELLOW}Downloading firmware-cli...${NC}"
if command -v curl &> /dev/null; then
    curl -fL --progress-bar "$DOWNLOAD_URL" -o "$TMP_DIR/firmware-cli"
elif command -v wget &> /dev/null; then
    wget -q --show-progress "$DOWNLOAD_URL" -O "$TMP_DIR/firmware-cli"
else
    echo -e "${RED}Error: curl or wget required${NC}"
    exit 1
fi

chmod +x "$TMP_DIR/firmware-cli"

# Install location
INSTALL_DIR=""
if [ -w "/usr/local/bin" ]; then
    INSTALL_DIR="/usr/local/bin"
elif [ -d "$HOME/.local/bin" ]; then
    INSTALL_DIR="$HOME/.local/bin"
else
    mkdir -p "$HOME/.local/bin"
    INSTALL_DIR="$HOME/.local/bin"
fi

INSTALL_PATH="$INSTALL_DIR/firmware-cli"

echo ""
echo -e "${GREEN}Installing to: $INSTALL_PATH${NC}"

# Install
if [ -w "$INSTALL_DIR" ]; then
    mv "$TMP_DIR/firmware-cli" "$INSTALL_PATH"
else
    echo -e "${YELLOW}Elevated permissions required${NC}"
    sudo mv "$TMP_DIR/firmware-cli" "$INSTALL_PATH"
fi

echo ""
echo -e "${GREEN}✓ Installation complete!${NC}"
echo ""
echo "Run: ${GREEN}firmware-cli${NC}"
echo ""

# Check PATH
if [[ ":$PATH:" != *":$INSTALL_DIR:"* ]]; then
    echo -e "${YELLOW}Warning: $INSTALL_DIR not in PATH${NC}"
    echo "Add to ~/.bashrc or ~/.zshrc:"
    echo ""
    echo "  export PATH=\"\$PATH:$INSTALL_DIR\""
    echo ""
fi

echo "Quick start:"
echo "  firmware-cli              # Interactive mode"
echo "  firmware-cli send <file>  # Upload log file"
echo "  firmware-cli stream <cmd> # Stream command output"
