From a1333cd08bd7cb5128fef38d1e2b83e5c86a5615 Mon Sep 17 00:00:00 2001 From: lpierson Date: Thu, 28 May 2026 16:05:22 +0000 Subject: [PATCH] Actualiser 3.build.odoo.sh --- 3.build.odoo.sh | 41 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/3.build.odoo.sh b/3.build.odoo.sh index 5def49b..baf1297 100755 --- a/3.build.odoo.sh +++ b/3.build.odoo.sh @@ -5,8 +5,45 @@ source ./0.variables.env # ── Extraction des métadonnées depuis le Dockerfile ────────────────────────── DOCKERFILE=./config-odoo/"${1:-Dockerfile}" -ODOO_VERSION=$(grep -E '^\s*ENV ODOO_VERSION\s' "$DOCKERFILE" | awk '{print $3}') -ODOO_RELEASE=$(grep -E '^\s*ARG ODOO_RELEASE=' "$DOCKERFILE" | cut -d'=' -f2) +# ── 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