From d1f77aa3546822d99e33189dc060ec8529e1974b Mon Sep 17 00:00:00 2001 From: Jephte Clain Date: Fri, 10 May 2024 17:15:30 +0400 Subject: [PATCH] dkbuild: support dist none et tag LATEST --- dkbuild | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/dkbuild b/dkbuild index 5550b7d..40741e3 100755 --- a/dkbuild +++ b/dkbuild @@ -224,9 +224,13 @@ construites. Une version est définie en ajoutant un préfixe à la distribution La commande 'setdists' permet de lister explicitement les distributions valides (et les versions associées le cas échéant). Si la distribution sélectionnée par l'utilisateur n'est pas dans la liste fournie, le script s'arrête sans erreur. + La première distribution listée est spéciale: c'est la distribution la plus récente, celle qui reçoit le tag :latest +La distribution 'none' est spéciale aussi: elle n'est pas mentionnée dans les +tags automatiquement attribués aux images. + La commande 'dist' permet de tester si la distribution spécifiée en argument a été sélectionnée par l'utilisateur. L'argument 'LATEST' permet de tester la dernière distribution. @@ -678,7 +682,8 @@ Les paramètres optionnels sont * set-tag=TAGS... ou set-tags=TAGS... spécifier des tags à rajouter au nom de l'image, séparés par un espace. cette liste remplace celle calculée automatiquement. ce paramètre est ignoré pour - les noms d'images comportant un tag + les noms d'images comportant un tag. + Utiliser le tag spécial LATEST pour rajouter :latest si c'est approprié * add-tag=TAGS... ou add-tags=TAGS... spécifier des tags à rajouter à la liste calculée automatiquement, séparés par un espace. ce paramètre est ignoré pour les noms d'images comportant un tag @@ -2043,6 +2048,14 @@ function define_functions_cmd() { imagetags+=("$imagetag") else for tag in "${set_tags[@]}" "${add_tags[@]}"; do + if [ "$tag" == LATEST ]; then + if [ -n "$HAVE_VERSION" -a "$VERSION" == "$LAST_VERSION" ]; then + tag=latest + else + # ignorer le tag LATEST s'il n'est pas applicable + continue + fi + fi imagetags+=("$imagetag:$tag") done fi @@ -2055,10 +2068,16 @@ function define_functions_cmd() { imagetags+=("$imagetag") else for tag in "${add_tags[@]}"; do + if [ "$tag" == LATEST ]; then + # toujours ignorer le tag LATEST dans add_tags + continue + fi imagetags+=("$imagetag:$tag") done [ -n "$VERSION" ] && imagetags+=("$imagetag:$VERSION-$DIST") - [ -n "$DIST" -a -z "$HAVE_VERSION" ] && imagetags+=("$imagetag:$DIST") + if [ -n "$DIST" -a "$DIST" != none -a -z "$HAVE_VERSION" ]; then + imagetags+=("$imagetag:$DIST") + fi fi done fi @@ -2067,7 +2086,7 @@ function define_functions_cmd() { if [ -z "$HAVE_VERSION" ]; then dist LATEST && imagetags+=("$imagetag:latest") elif [ "$VERSION" == "$LAST_VERSION" ]; then - imagetags+=("$imagetag:$DIST") + [ "$DIST" != none ] && imagetags+=("$imagetag:$DIST") dist LATEST && imagetags+=("$imagetag:latest") fi elif [ -n "$PROFILE" ]; then