dkbuild: calcul de la version à partir d'un fichier ou d'un chemin
This commit is contained in:
parent
b006bb44cd
commit
306e77f307
84
dkbuild
84
dkbuild
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
# -*- 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
|
source "$(dirname "$0")/lib/ulib/ulib" || exit 1
|
||||||
urequire DEFAULTS
|
urequire DEFAULTS ptools xmlsupport
|
||||||
|
|
||||||
SELF="$script"
|
SELF="$script"
|
||||||
TEMPLATEDIR="$scriptdir/lib/dkbuild/templates"
|
TEMPLATEDIR="$scriptdir/lib/dkbuild/templates"
|
||||||
|
@ -18,7 +18,7 @@ USAGE
|
||||||
OPTIONS
|
OPTIONS
|
||||||
--hdk, --help-dkbuild
|
--hdk, --help-dkbuild
|
||||||
Afficher l'aide sur le format du fichier 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
|
Afficher la référence sur les commandes utilisables dans un fichier
|
||||||
dkbuild
|
dkbuild
|
||||||
|
|
||||||
|
@ -164,6 +164,14 @@ $scriptname dump [OPTIONS]
|
||||||
|
|
||||||
function display_help_dkbuild() {
|
function display_help_dkbuild() {
|
||||||
uecho "\
|
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
|
Un fichier dkbuild est un script shell utilisé pour construire une ou plusieurs
|
||||||
images docker.
|
images docker.
|
||||||
|
|
||||||
|
@ -452,6 +460,14 @@ utilisés comme tags (i.e IMAGE:DIST et IMAGE:VERSION-DIST)"
|
||||||
|
|
||||||
function display_help_reference() {
|
function display_help_reference() {
|
||||||
uecho "\
|
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
|
## fonctions d'affichage
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
|
@ -472,6 +488,21 @@ USAGE:
|
||||||
|
|
||||||
## setversion -- spécifier la version par défaut
|
## 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
|
## version -- vérifier la version courante
|
||||||
|
|
||||||
## setenv -- spécifier une variable d'environnement
|
## setenv -- spécifier une variable d'environnement
|
||||||
|
@ -1071,7 +1102,50 @@ function load_environ() {
|
||||||
function define_functions_env() {
|
function define_functions_env() {
|
||||||
function setversion() {
|
function setversion() {
|
||||||
[ -n "$SETVERSION_DONE" ] && return
|
[ -n "$SETVERSION_DONE" ] && return
|
||||||
SETVERSION="$1"
|
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
|
SETVERSION_DONE=1
|
||||||
}
|
}
|
||||||
function dist() {
|
function dist() {
|
||||||
|
@ -2781,7 +2855,7 @@ while [ $# -gt 0 ]; do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
--help) args+=("$1"); shift; continue;;
|
--help) args+=("$1"); shift; continue;;
|
||||||
--hdk|--help-dkbuild) 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
|
-*|*=*) # option quelconque: inférer build
|
||||||
args+=(build)
|
args+=(build)
|
||||||
break
|
break
|
||||||
|
@ -2796,7 +2870,7 @@ set -- "${args[@]}" "$@"
|
||||||
args=(+
|
args=(+
|
||||||
--help '$exit_with display_help'
|
--help '$exit_with display_help'
|
||||||
--hdk,--help-dkbuild '$exit_with display_help_dkbuild'
|
--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[@]}"
|
parse_args "$@"; set -- "${args[@]}"
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue