dkbuild: calcul de la version à partir d'un fichier ou d'un chemin
This commit is contained in:
parent
b006bb44cd
commit
306e77f307
82
dkbuild
82
dkbuild
|
@ -1,7 +1,7 @@
|
|||
#!/bin/bash
|
||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
||||
source "$(dirname "$0")/lib/ulib/ulib" || exit 1
|
||||
urequire DEFAULTS
|
||||
urequire DEFAULTS ptools xmlsupport
|
||||
|
||||
SELF="$script"
|
||||
TEMPLATEDIR="$scriptdir/lib/dkbuild/templates"
|
||||
|
@ -18,7 +18,7 @@ USAGE
|
|||
OPTIONS
|
||||
--hdk, --help-dkbuild
|
||||
Afficher l'aide sur le format du fichier dkbuild
|
||||
--hrf, --help-reference
|
||||
--href, --help-reference
|
||||
Afficher la référence sur les commandes utilisables dans un fichier
|
||||
dkbuild
|
||||
|
||||
|
@ -164,6 +164,14 @@ $scriptname dump [OPTIONS]
|
|||
|
||||
function display_help_dkbuild() {
|
||||
uecho "\
|
||||
OPTIONS
|
||||
--help Aide générale
|
||||
* --hdk Aide sur le format du fichier dkbuild
|
||||
--href Référence sur les commandes utilisables dans un fichier dkbuild
|
||||
|
||||
DKBUILD
|
||||
=======
|
||||
|
||||
Un fichier dkbuild est un script shell utilisé pour construire une ou plusieurs
|
||||
images docker.
|
||||
|
||||
|
@ -452,6 +460,14 @@ utilisés comme tags (i.e IMAGE:DIST et IMAGE:VERSION-DIST)"
|
|||
|
||||
function display_help_reference() {
|
||||
uecho "\
|
||||
OPTIONS
|
||||
--help Aide générale
|
||||
--hdk Aide sur le format du fichier dkbuild
|
||||
* --href Référence sur les commandes utilisables dans un fichier dkbuild
|
||||
|
||||
REFERENCE
|
||||
=========
|
||||
|
||||
## fonctions d'affichage
|
||||
|
||||
USAGE:
|
||||
|
@ -472,6 +488,21 @@ USAGE:
|
|||
|
||||
## setversion -- spécifier la version par défaut
|
||||
|
||||
USAGE: setversion VERSION
|
||||
|
||||
Les paramètres optionnels sont
|
||||
* from-file=FILE
|
||||
prendre la version depuis le fichier spécifié. les formats pom.xml et
|
||||
VERSION.txt sont supportés
|
||||
* from-repo=REPO
|
||||
calculer la version depuis le dépôt git spécifié
|
||||
* from-glob=GLOB
|
||||
calculer la version depuis le chemin spécifié
|
||||
* extract=REGEXP
|
||||
à partir de la valeur calculée par l'un des paramètres from-*, matcher
|
||||
l'expression régulière au format AWK, et prendre comme version la valeur de
|
||||
l'expression \$1
|
||||
|
||||
## version -- vérifier la version courante
|
||||
|
||||
## setenv -- spécifier une variable d'environnement
|
||||
|
@ -1071,7 +1102,50 @@ function load_environ() {
|
|||
function define_functions_env() {
|
||||
function setversion() {
|
||||
[ -n "$SETVERSION_DONE" ] && return
|
||||
local from_file from_repo from_glob extract
|
||||
while [ $# -gt 0 ]; do
|
||||
case "$1" in
|
||||
from-file|file) from_file=.;;
|
||||
from-file=*|file=*)
|
||||
from_file="${1#from-}"; from_file="${from_file#file=}"
|
||||
;;
|
||||
from-repo|repo) from_repo=.;;
|
||||
from-repo=*|repo=*)
|
||||
from_repo="${1#from-}"; from_repo="${from_repo#repo=}"
|
||||
;;
|
||||
from-glob=*|glob=*)
|
||||
from_glob="${1#from-}"; from_glob="${from_glob#glob=}"
|
||||
;;
|
||||
extract=*)
|
||||
extract="${1#extract=}"
|
||||
;;
|
||||
*=*) ewarn "setversion: $1: argument ignoré";;
|
||||
*) break;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
if [ -n "$from_file" ]; then
|
||||
if [ -d "$from_file" ]; then
|
||||
setx SETVERSION=pver --sw "$from_file" || die
|
||||
elif [[ "$from_file" == *.xml ]]; then
|
||||
setx SETVERSION=pver -E "$from_file" || die
|
||||
else
|
||||
setx SETVERSION=pver -F "$from_file" || die
|
||||
fi
|
||||
elif [ -n "$from_repo" ]; then
|
||||
die "setversion from-repo: pas encore implémenté" #XXX
|
||||
elif [ -n "$from_glob" ]; then
|
||||
SETVERSION="$(list_all . "$from_glob" | sort -rn | head -1)"
|
||||
else
|
||||
SETVERSION="$1"
|
||||
fi
|
||||
if [ -n "$extract" ]; then
|
||||
extract="${extract//\//\\/}"
|
||||
SETVERSION="$(awk -v version="$SETVERSION" "BEGIN {
|
||||
if (match(version, /$extract/, vs)) { print vs[1] }
|
||||
else { print version }
|
||||
}")"
|
||||
fi
|
||||
SETVERSION_DONE=1
|
||||
}
|
||||
function dist() {
|
||||
|
@ -2781,7 +2855,7 @@ while [ $# -gt 0 ]; do
|
|||
case "$1" in
|
||||
--help) args+=("$1"); shift; continue;;
|
||||
--hdk|--help-dkbuild) args+=("$1"); shift; continue;;
|
||||
--hrf|--help-reference) args+=("$1"); shift; continue;;
|
||||
--href|--help-reference) args+=("$1"); shift; continue;;
|
||||
-*|*=*) # option quelconque: inférer build
|
||||
args+=(build)
|
||||
break
|
||||
|
@ -2796,7 +2870,7 @@ set -- "${args[@]}" "$@"
|
|||
args=(+
|
||||
--help '$exit_with display_help'
|
||||
--hdk,--help-dkbuild '$exit_with display_help_dkbuild'
|
||||
--hrf,--help-reference '$exit_with display_help_reference'
|
||||
--href,--help-reference '$exit_with display_help_reference'
|
||||
)
|
||||
parse_args "$@"; set -- "${args[@]}"
|
||||
|
||||
|
|
Loading…
Reference in New Issue