#!/bin/bash

# Build script for all pi calculation programs
# This script calls build.sh for each language

SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
cd "$SCRIPT_DIR"

echo "=== Building all pi calculation programs ==="
echo ""

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

# Track success/failure
BUILD_SUCCESS=0
BUILD_FAILED=0

# Function to print success message
print_success() {
    echo -e "${GREEN}✓${NC} $1 built successfully"
    BUILD_SUCCESS=$((BUILD_SUCCESS + 1))
}

# Function to print error message
print_error() {
    echo -e "${RED}✗${NC} $1 build failed"
    BUILD_FAILED=$((BUILD_FAILED + 1))
}

# Function to print warning message
print_warning() {
    echo -e "${YELLOW}⚠${NC} $1"
}

# List of all languages
LANGUAGES="bash brainfuck c cpp crystal csharp d dart elixir erlang fortran go haskell java javascript julia kotlin objective-c scala typescript lua nim odin perl php python r ruby rust swift zig assembly wolfram vimscript"

# Build each language
for lang in $LANGUAGES; do
    echo "=== $lang ==="
    if [ -f "$lang/cmd/build.sh" ]; then
        cd "$lang"
        if cmd/build.sh 2>&1; then
            print_success "$lang"
        else
            print_error "$lang"
        fi
        cd "$SCRIPT_DIR"
    else
        print_error "$lang/cmd/build.sh not found"
    fi
    echo ""
done

echo "=== Build Summary ==="
echo -e "Successful: ${GREEN}$BUILD_SUCCESS${NC}"
echo -e "Failed: ${RED}$BUILD_FAILED${NC}"

if [ $BUILD_FAILED -eq 0 ]; then
    echo -e "${GREEN}✓ All builds completed successfully!${NC}"
    exit 0
else
    echo -e "${RED}✗ Some builds failed${NC}"
    exit 1
fi

# ============================================
# Bash (no compilation needed)
# ============================================
