#!/usr/bin/env bash
set -euo pipefail
source ./0.variables.env

# ── Extraction des métadonnées depuis le Dockerfile ──────────────────────────
DOCKERFILE=./config-odoo/"${1:-Dockerfile}"

# ── Extraction des metadonnees depuis le Dockerfile ──────────────────────────
# Fonction robuste. gere les directives ENV et ARG, les formes "X=Y" et "X Y",
# et les valeurs entourees de guillemets. Retourne le premier token de la valeur.
extract_dockerfile_var() {
    local key="$1"
    local file="$2"

    [[ -f "$file" ]] || { echo "[extract] Fichier introuvable. $file" >&2; return 2; }

    awk -v k="$key" '
        $0 ~ "^[[:space:]]*(ENV|ARG)[[:space:]]+" k "[[:space:]=]" {
            sub("^[[:space:]]*(ENV|ARG)[[:space:]]+" k "[[:space:]=]+", "")
            gsub(/"/, "")
            print $1
            exit
        }
    ' "$file"
}

DOCKERFILE="./config-odoo/${1:-Dockerfile}"

[[ -f "$DOCKERFILE" ]] || {
    echo "ERREUR. Dockerfile introuvable. $DOCKERFILE" >&2
    exit 1
}

ODOO_VERSION=$(extract_dockerfile_var "ODOO_VERSION" "$DOCKERFILE")
ODOO_RELEASE=$(extract_dockerfile_var "ODOO_RELEASE" "$DOCKERFILE")
ODOO_SHA=$(extract_dockerfile_var "ODOO_SHA"     "$DOCKERFILE")

: "${ODOO_VERSION:?ODOO_VERSION non extrait depuis $DOCKERFILE}"
: "${ODOO_RELEASE:?ODOO_RELEASE non extrait depuis $DOCKERFILE}"
: "${ODOO_SHA:?ODOO_SHA non extrait depuis $DOCKERFILE}"

echo "Metadonnees extraites depuis $DOCKERFILE."
echo "  ODOO_VERSION = $ODOO_VERSION"
echo "  ODOO_RELEASE = $ODOO_RELEASE"
echo "  ODOO_SHA     = $ODOO_SHA"


if [[ -z "$ODOO_VERSION" || -z "$ODOO_RELEASE" ]]; then
  echo "ERREUR : impossible d'extraire ODOO_VERSION ou ODOO_RELEASE depuis $DOCKERFILE" >&2
  exit 1
fi

IMAGE_NAME="odoo-${ODOO_VERSION}.${ODOO_RELEASE}-image"

echo "────────────────────────────────────────────"
echo "  Dockerfile   : $DOCKERFILE"
echo "  Odoo version : $ODOO_VERSION"
echo "  Build release: $ODOO_RELEASE"
echo "  Image cible  : $IMAGE_NAME"
echo "────────────────────────────────────────────"

# ── Build ─────────────────────────────────────────────────────────────────────

#echo "──commande cp───────────────────────────────"
#cp ./odoo.conf ./config-odoo/
cp ./requirements.txt ./config-odoo/

#echo "──commande cd ──────────────────────────────"
cd config-odoo

#echo "───commande build ──────────────────────────"
docker build \
  --build-arg ODOO_RELEASE="$ODOO_RELEASE" \
  --tag "$IMAGE_NAME" \
  .

#echo "─commande cd ..─────────────────────────────"
cd ..


#echo "──────alimentation de .env pour le docker-compose.yml──────────────"
echo "" > ./.env
echo "ODOO_IMAGE=${IMAGE_NAME}" >> ./.env
echo "" >> ./0.variables.env
echo "export ODOO_IMAGE=${IMAGE_NAME}" >> ./0.variables.env

#echo "──────fin───────────────────────────────────"
echo ""

echo "✓ Image construite : $IMAGE_NAME"

