#!/bin/bash

set -e

[ ! -d ./dist ] && mkdir ./dist

export GOFLAGS="-buildvcs=false"

# Define target operating systems and architectures
TARGETS=(
    "darwin/amd64"
    "darwin/arm64"
    "linux/amd64"
    "linux/arm64"
    "windows/amd64"
    "windows/arm64"
)

for TARGET in "${TARGETS[@]}"; do
    OS=$(echo $TARGET | cut -d '/' -f 1)
    ARCH=$(echo $TARGET | cut -d '/' -f 2)

    # Build zygote binary
    OUTPUT="./dist/z-$OS-$ARCH"
    [ "$OS" = "windows" ] && OUTPUT="$OUTPUT.exe"
    GOOS=$OS GOARCH=$ARCH go build -v -o "$OUTPUT" ./cmd/zygote

    # Build zcore binary
    OUTPUT_ZCORE="./dist/zcore-$OS-$ARCH"
    [ "$OS" = "windows" ] && OUTPUT_ZCORE="$OUTPUT_ZCORE.exe"
    GOOS=$OS GOARCH=$ARCH go build -v -o "$OUTPUT_ZCORE" ./cmd/zcore
done
