#!/bin/bash

# Renk tanımlamaları
GREEN='\033[0;32m'
BLUE='\033[0;34m'
RED='\033[0;31m'
NC='\033[0m' # Renk Yok

echo -e "${BLUE}=== Go Windows Build Script ===${NC}"

# Çıktı klasörünü oluştur
OUTPUT_DIR="builds"
mkdir -p $OUTPUT_DIR

# Ana dosya adı (main.go varsayılır, yoksa ilk argümanı al)
ENTRY_FILE=${1:-"main.go"}
APP_NAME=$(basename $(pwd))

if [ ! -f "$ENTRY_FILE" ]; then
    echo -e "${RED}Hata: $ENTRY_FILE bulunamadı!${NC}"
    exit 1
fi

echo -e "Derleniyor: ${GREEN}$ENTRY_FILE${NC}"

# Mimari seçimi (Varsayılan amd64)
read -p "Mimari seçin (1: amd64 [Varsayılan], 2: 386): " ARCH_CHOICE

if [[ "$ARCH_CHOICE" == "2" ]]; then
    export GOARCH=386
    FINAL_NAME="${APP_NAME}_x86.exe"
else
    export GOARCH=amd64
    FINAL_NAME="${APP_NAME}_x64.exe"
fi

# Derleme işlemi
# -s -w bayrakları dosya boyutunu ciddi oranda küçültür
echo -e "${BLUE}Windows için derleniyor...${NC}"

env GOOS=windows CGO_ENABLED=0 \
    go build -ldflags="-s -w" \
    -o "$OUTPUT_DIR/$FINAL_NAME" "$ENTRY_FILE"

if [ $? -eq 0 ]; then
    echo -e "${GREEN}Başarılı!${NC}"
    echo -e "Çıktı: ${BLUE}$OUTPUT_DIR/$FINAL_NAME${NC}"
else
    echo -e "${RED}Derleme sırasında bir hata oluştu.${NC}"
fi