#!/bin/bash
set -e
cd /Users/easonli/sideprojects/decompile

# Download ARM GNU Toolchain
echo "=== Downloading ARM GNU Toolchain ==="
curl -L -o arm-toolchain.tar.xz \
  "https://developer.arm.com/-/media/Files/downloads/gnu/13.3.rel1/binrel/arm-gnu-toolchain-13.3.rel1-darwin-arm64-arm-none-eabi.tar.xz"

echo "=== Extracting ARM Toolchain ==="
tar -xf arm-toolchain.tar.xz

# Verify ARM toolchain
if [ -f arm-gnu-toolchain-*/bin/arm-none-eabi-objdump ]; then
    echo "ARM toolchain: OK"
else
    echo "ARM toolchain: FAILED"
fi

# Download Ghidra
echo "=== Downloading Ghidra ==="
curl -L -o ghidra.zip \
  "https://github.com/NationalSecurityAgency/ghidra/releases/download/Ghidra_11.3.2_build/ghidra_11.3.2_PUBLIC_20250415.zip"

echo "=== Extracting Ghidra ==="
unzip -q -o ghidra.zip

# Verify Ghidra
if [ -f ghidra_*/support/analyzeHeadless ]; then
    echo "Ghidra: OK"
else
    echo "Ghidra: FAILED"
fi

# Setup symlinks for ARM toolchain
echo "=== Setting up symlinks ==="
ARM_BIN=$(ls -d arm-gnu-toolchain-*/bin 2>/dev/null | head -1)
if [ -n "$ARM_BIN" ]; then
    for tool in "$ARM_BIN"/arm-none-eabi-*; do
        ln -sf "$(pwd)/$tool" /usr/local/bin/ 2>/dev/null || true
    done
    echo "Symlinks created (may need manual PATH setup)"
fi

echo "=== Done ==="
