#!/bin/bash

set -euo pipefail

cd "$(dirname "$0")/../../" # Navigate to the root of the project

# システムアーキテクチャを判定してDOCKER_PLATFORMを設定
ARCH=$(uname -m)
if [ "$ARCH" = "aarch64" ] || [ "$ARCH" = "arm64" ]; then
    export DOCKER_PLATFORM="linux/arm64"
else
    export DOCKER_PLATFORM="linux/amd64"
fi


# 最適化オプションのデフォルト設定
BUILD_FLAG="--build"
INITIALIZE=false
DOWN=false

# オプション解析
while [[ $# -gt 0 ]]; do
    case $1 in
        init)
            INITIALIZE=true
            shift
            ;;
        down)
            DOWN=true
            shift
            ;;
        *)
            COMPOSE_ARGS+=("$1")
            shift
            ;;
    esac
done

if [ "$DOWN" = "true" ]; then
    echo "Stopping Docker Compose environment..."
    docker compose down
    echo "Environment stopped. All containers have been removed."
    exit 0
fi


if [ "$INITIALIZE" = "true" ]; then
    echo "Initializing Docker Compose environment..."
    docker compose down --volumes
    echo "Initialization complete. All containers and volumes have been removed."

fi

# Docker Composeを起動
echo "Starting Docker Compose..."
docker compose up $BUILD_FLAG "${COMPOSE_ARGS[@]}"
