ajout de --add-metadata

support de --allow-empty pour --update
This commit is contained in:
Jephte CLAIN 2015-03-26 20:05:32 +04:00
parent 8d3ab79b39
commit 259e1be6dc
2 changed files with 61 additions and 11 deletions

View File

@ -145,7 +145,7 @@ function pver() {
local setbeta=
local setrc=
local setrelease=
local setmetadata=
local setmetadata= addmetadata=
local vcsmetadata=
parse_opts "${PRETTYOPTS[@]}" \
--help '$exit_with pver_display_help' \
@ -177,7 +177,8 @@ function pver() {
-b,--beta '$action=update; setalpha=; setbeta=1; setrc=; setrelease=' \
-r,--rc '$action=update; setalpha=; setbeta=; setrc=1; setrelease=' \
-R,--release,--final '$action=update; setalpha=; setbeta=; setrc=; setrelease=1' \
-m:,--metadata: '$action=update; set@ setmetadata' \
-m:,--metadata:,--set-metadata: '$action=update; set@ setmetadata' \
--add-metadata: '$action=update; set@ addmetadata' \
-M,--vcs-metadata '$action=update; vcsmetadata=1' \
@ args -- "$@" && set -- "${args[@]}" || { eerror "$args"; return 1; }
@ -232,7 +233,6 @@ function pver() {
version="$(git cat-file blob "$branch:$name" 2>/dev/null)"
fi
fi
[ "$action" == show ] || allow_empty=
[ -n "$version" -o -n "$allow_empty" ] || version=0.0.0
# Conversion éventuelle du numéro de version
@ -241,7 +241,7 @@ function pver() {
if [ "$convert" == auto ]; then
[ -z "$valid" ] && convert=1
fi
if [ -n "$convert" ]; then
if [ -n "$convert" -a -n "$version" ]; then
mversion="$(awkrun version="$version" '
function nbdot(s) {
gsub(/[^.]/, "", s)
@ -408,6 +408,7 @@ BEGIN {
esac
elif [ "$action" == update ]; then
[ -z "$version" -a -n "$allow_empty" ] && return 1
[ -n "$valid" ] || { eerror "Numéro de version invalide: $version"; return 1; }
if [ -n "$file" ]; then
@ -446,17 +447,56 @@ BEGIN {
# incrémenter les numéros de version
if [ "$incversion" == auto ]; then
if [ -n "$setrelease" -o -n "$setprelease" -o -n "$setmetadata" ]; then
if [ -n "$setrelease" -o -n "$setprelease" -o -n "$setmetadata" -o -n "$addmetadata" ]; then
incversion=
else
incversion=menu
fi
fi
if [ "$incversion" == menu ]; then
psemver_copy x; psemver_incmajor x; psemver_setprelease "$setprelease" x; psemver_setmetadata "$setmetadata" x; psemver_setvar versionx x
psemver_copy z; psemver_incminor z; psemver_setprelease "$setprelease" z; psemver_setmetadata "$setmetadata" z; psemver_setvar versionz z
psemver_copy p; psemver_incpatchlevel p; psemver_setprelease "$setprelease" p; psemver_setmetadata "$setmetadata" p; psemver_setvar versionp p
psemver_copy k; psemver_setprelease "$setprelease" k; psemver_setmetadata "$setmetadata" k; psemver_setvar versionk k
psemver_copy x; {
psemver_incmajor x
psemver_setprelease "$setprelease" x
if [ -n "$addmetadata" ]; then
[ -n "$setmetadata" ] && psemver_setmetadata "$setmetadata" x
psemver_addmetadata "$addmetadata" x
else
psemver_setmetadata "$setmetadata" x
fi
psemver_setvar versionx x
}
psemver_copy z; {
psemver_incminor z
psemver_setprelease "$setprelease" z
if [ -n "$addmetadata" ]; then
[ -n "$setmetadata" ] && psemver_setmetadata "$setmetadata" z
psemver_addmetadata "$addmetadata" z
else
psemver_setmetadata "$setmetadata" z
fi
psemver_setvar versionz z
}
psemver_copy p; {
psemver_incpatchlevel p
psemver_setprelease "$setprelease" p
if [ -n "$addmetadata" ]; then
[ -n "$setmetadata" ] && psemver_setmetadata "$setmetadata" p
psemver_addmetadata "$addmetadata" p
else
psemver_setmetadata "$setmetadata" p
fi
psemver_setvar versionp p
}
psemver_copy k; {
psemver_setprelease "$setprelease" k
if [ -n "$addmetadata" ]; then
[ -n "$setmetadata" ] && psemver_setmetadata "$setmetadata" k
psemver_addmetadata "$addmetadata" k
else
psemver_setmetadata "$setmetadata" k
fi
psemver_setvar versionk k
}
nextvs=(
"$versionx : maj incompatibles de l'API (-x)"
"$versionz : maj compatibles de l'API (-z)"
@ -482,7 +522,7 @@ BEGIN {
esac
# Quand on incrémente, réinitialiser la valeur de prérelease et metadata
psemver_setprelease
psemver_setmetadata
[ -z "$addmetadata" ] && psemver_setmetadata
fi
# spécifier prerelease
@ -503,6 +543,9 @@ BEGIN {
if [ -n "$setmetadata" ]; then
psemver_setmetadata "$setmetadata" || { eerror "Identifiant de build invalide: $setmetadata"; return 1; }
fi
if [ -n "$addmetadata" ]; then
psemver_addmetadata "$addmetadata" || { eerror "Identifiant de build invalide: $addmetadata"; return 1; }
fi
# afficher le résultat final
psemver_setvar version

9
pver
View File

@ -30,6 +30,10 @@ OPTIONS
--show
Afficher le numéro de version. C'est l'action par défaut
--allow-empty
Supporter que la version puisse ne pas être spécifiée ni trouvée. Dans
ce cas, ne pas assumer que la version effective est 0.0.0
Avec --show et --update, ne rien afficher si la version est vide.
--check
Vérifier que le numéro de version est conforme aux règles du versionage
sémantique
@ -88,7 +92,10 @@ OPTIONS
Spécifier un identifiant de build, à ajouter au numéro de version.
-M, --vcs-metadata
Spécifier l'identifiant à partir de la révision actuelle dans le
gestionnaire de version. Note: pour le moment, seul git est supporté."
gestionnaire de version. Note: pour le moment, seul git est supporté.
--add-metadata ID
Ajouter l'identifiant spécifié à la valeur actuelle, au lieu de la
remplacer. Séparer l'identifiant de la valeur précédente avec un '.'"
}
pver "$@"