#!/bin/bash
# Build room Docker images
#
# Usage:
#   ./build.sh              # Build all
#   ./build.sh <service>    # Build specific service
#   ./build.sh --no-cache   # Force rebuild
#
# This is a TEMPLATE. Copy to your room's ctrl/ and customize.

set -e

cd "$(dirname "$0")/.."

NO_CACHE=""
TARGET="all"
SERVICE_DIRS=()

for dir in */; do
    [ -f "$dir/docker-compose.yml" ] && SERVICE_DIRS+=("${dir%/}")
done

for arg in "$@"; do
    case $arg in
        --no-cache) NO_CACHE="--no-cache" ;;
        *) [[ " ${SERVICE_DIRS[*]} " =~ " ${arg} " ]] && TARGET="$arg" ;;
    esac
done

build_service() {
    local svc=$1
    echo "Building $svc..."
    (cd "$svc" && docker compose build $NO_CACHE)
}

if [ "$TARGET" = "all" ]; then
    for svc in "${SERVICE_DIRS[@]}"; do
        build_service "$svc"
    done
else
    build_service "$TARGET"
fi

echo "Done."
