#!/bin/bash
set -e

# Get version from deno.json
VERSION=$(cat deno.json | grep -o '"version": *"[^"]*"' | cut -d'"' -f4)
BINARY_DIR="dist/binaries"

echo "================================================"
echo "  MAILER Compilation Script"
echo "  Version: ${VERSION}"
echo "================================================"
echo ""
echo "Compiling for all supported platforms..."
echo ""

# Clean up old binaries and create fresh directory
rm -rf "$BINARY_DIR"
mkdir -p "$BINARY_DIR"
echo "→ Cleaned old binaries from $BINARY_DIR"
echo ""

# Linux x86_64
echo "→ Compiling for Linux x86_64..."
deno compile --allow-all --no-check --output "$BINARY_DIR/mailer-linux-x64" \
  --target x86_64-unknown-linux-gnu mod.ts
echo "  ✓ Linux x86_64 complete"
echo ""

# Linux ARM64
echo "→ Compiling for Linux ARM64..."
deno compile --allow-all --no-check --output "$BINARY_DIR/mailer-linux-arm64" \
  --target aarch64-unknown-linux-gnu mod.ts
echo "  ✓ Linux ARM64 complete"
echo ""

# macOS x86_64
echo "→ Compiling for macOS x86_64..."
deno compile --allow-all --no-check --output "$BINARY_DIR/mailer-macos-x64" \
  --target x86_64-apple-darwin mod.ts
echo "  ✓ macOS x86_64 complete"
echo ""

# macOS ARM64
echo "→ Compiling for macOS ARM64..."
deno compile --allow-all --no-check --output "$BINARY_DIR/mailer-macos-arm64" \
  --target aarch64-apple-darwin mod.ts
echo "  ✓ macOS ARM64 complete"
echo ""

# Windows x86_64
echo "→ Compiling for Windows x86_64..."
deno compile --allow-all --no-check --output "$BINARY_DIR/mailer-windows-x64.exe" \
  --target x86_64-pc-windows-msvc mod.ts
echo "  ✓ Windows x86_64 complete"
echo ""

echo "================================================"
echo "  Compilation Summary"
echo "================================================"
echo ""
ls -lh "$BINARY_DIR/" | tail -n +2
echo ""
echo "✓ All binaries compiled successfully!"
echo ""
echo "Binary location: $BINARY_DIR/"
echo ""
