utiliser les fonctions psemver_*
menu du choix de la nouvelle version
This commit is contained in:
parent
3b34e2c029
commit
4ff8ed26a9
62
uversion
62
uversion
|
@ -3,7 +3,7 @@
|
||||||
source "$(dirname "$0")/ulib/ulib" || exit 1; urequire DEFAULTS semver
|
source "$(dirname "$0")/ulib/ulib" || exit 1; urequire DEFAULTS semver
|
||||||
|
|
||||||
function display_help() {
|
function display_help() {
|
||||||
uecho "$scriptname: gérer des numéros de version
|
uecho "$scriptname: gérer des numéros de version selon les règles du versionnage sémantique v2.0.0 (http://semver.org/)
|
||||||
|
|
||||||
USAGE
|
USAGE
|
||||||
$scriptname [options]
|
$scriptname [options]
|
||||||
|
@ -19,8 +19,8 @@ OPTIONS
|
||||||
--show
|
--show
|
||||||
Afficher le numéro de version. C'est l'action par défaut
|
Afficher le numéro de version. C'est l'action par défaut
|
||||||
--check
|
--check
|
||||||
Vérifier que le numéro de version est conforme aux règles des versions
|
Vérifier que le numéro de version est conforme aux règles du versionnage
|
||||||
sémantiques (http://semver.org/)
|
sémantique
|
||||||
--eq VERSION
|
--eq VERSION
|
||||||
--ne VERSION
|
--ne VERSION
|
||||||
--lt VERSION
|
--lt VERSION
|
||||||
|
@ -34,8 +34,8 @@ OPTIONS
|
||||||
same et diff comparent aussi la valeur des metadata
|
same et diff comparent aussi la valeur des metadata
|
||||||
-v, --set-version VERSION
|
-v, --set-version VERSION
|
||||||
Spécifier un nouveau numéro de version qui écrase la valeur actuelle.
|
Spécifier un nouveau numéro de version qui écrase la valeur actuelle.
|
||||||
Cette option ne devrait pas être utilisée parce qu'elle ne respecte pas
|
Cette option ne devrait pas être utilisée en temps normal parce que cela
|
||||||
les règles du versionnage sémantique.
|
va contre les règles du versionnage sémantique.
|
||||||
-u, --update
|
-u, --update
|
||||||
Mettre à jour le numéro de version.
|
Mettre à jour le numéro de version.
|
||||||
|
|
||||||
|
@ -77,7 +77,7 @@ setprelease=
|
||||||
setalpha=
|
setalpha=
|
||||||
setbeta=
|
setbeta=
|
||||||
setrc=
|
setrc=
|
||||||
setfinal=
|
setrelease=
|
||||||
setmetadata=
|
setmetadata=
|
||||||
parse_opts "${PRETTYOPTS[@]}" \
|
parse_opts "${PRETTYOPTS[@]}" \
|
||||||
--help '$exit_with display_help' \
|
--help '$exit_with display_help' \
|
||||||
|
@ -98,10 +98,10 @@ parse_opts "${PRETTYOPTS[@]}" \
|
||||||
-z,--minor '$action=update; incversion=minor' \
|
-z,--minor '$action=update; incversion=minor' \
|
||||||
-p,--patchlevel '$action=update; incversion=patchlevel' \
|
-p,--patchlevel '$action=update; incversion=patchlevel' \
|
||||||
-l:,--prelease:,--prerelease: '$action=update; set@ setprelease' \
|
-l:,--prelease:,--prerelease: '$action=update; set@ setprelease' \
|
||||||
-a,--alpha '$action=update; setalpha=1; setbeta=; setrc=; setfinal=' \
|
-a,--alpha '$action=update; setalpha=1; setbeta=; setrc=; setrelease=' \
|
||||||
-b,--beta '$action=update; setalpha=; setbeta=1; setrc=; setfinal=' \
|
-b,--beta '$action=update; setalpha=; setbeta=1; setrc=; setrelease=' \
|
||||||
-r,--rc '$action=update; setalpha=; setbeta=; setrc=1; setfinal=' \
|
-r,--rc '$action=update; setalpha=; setbeta=; setrc=1; setrelease=' \
|
||||||
-R,--release,--final '$action=update; setalpha=; setbeta=; setrc=; setfinal=1' \
|
-R,--release,--final '$action=update; setalpha=; setbeta=; setrc=; setrelease=1' \
|
||||||
-m:,--metadata: '$action=update; set@ setmetadata' \
|
-m:,--metadata: '$action=update; set@ setmetadata' \
|
||||||
@ args -- "$@" && set -- "${args[@]}" || die "$args"
|
@ args -- "$@" && set -- "${args[@]}" || die "$args"
|
||||||
|
|
||||||
|
@ -140,12 +140,12 @@ fi
|
||||||
# mis dans la partie "update"
|
# mis dans la partie "update"
|
||||||
[ -n "$setversion" ] && version="$setversion"
|
[ -n "$setversion" ] && version="$setversion"
|
||||||
|
|
||||||
semver_parse "$version" major minor patchlevel prelease metadata valid
|
psemver_parse "$version"
|
||||||
if [ "$action" == check ]; then
|
if [ "$action" == check ]; then
|
||||||
[ -n "$valid" ] || die "Numéro de version invalide: $version"
|
[ -n "$valid" ] || die "Numéro de version invalide: $version"
|
||||||
|
|
||||||
elif [ "$action" == compare ]; then
|
elif [ "$action" == compare ]; then
|
||||||
semver_parse "$oversion" omajor ominor opatchlevel oprelease ometadata ovalid
|
psemver_parse "$oversion" o
|
||||||
case "$operator" in
|
case "$operator" in
|
||||||
eq|same)
|
eq|same)
|
||||||
for var in valid major minor patchlevel; do
|
for var in valid major minor patchlevel; do
|
||||||
|
@ -221,19 +221,37 @@ elif [ "$action" == update ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# incrémenter les numéros de version
|
# incrémenter les numéros de version
|
||||||
[ "$incversion" == auto ] && incversion=minor #menu
|
[ "$incversion" == auto ] && incversion=menu
|
||||||
|
if [ "$incversion" == menu ]; then
|
||||||
|
psemver_copy x; psemver_incmajor x; psemver_setprelease "$setprelease" x; psemver_setvar versionx x
|
||||||
|
psemver_copy z; psemver_incminor z; psemver_setprelease "$setprelease" z; psemver_setvar versionz z
|
||||||
|
psemver_copy p; psemver_incpatchlevel p; psemver_setprelease "$setprelease" p; psemver_setvar versionp p
|
||||||
|
nextvs=(
|
||||||
|
"$versionx : maj incompatibles de l'API (-x)"
|
||||||
|
"$versionz : maj compatibles de l'API (-z)"
|
||||||
|
"$versionp : correction de bugs (-p)"
|
||||||
|
)
|
||||||
|
nextv="${nextvs[1]}"
|
||||||
|
simple_menu nextv nextvs \
|
||||||
|
-t "Incrémenter le numéro de version" \
|
||||||
|
-m "Veuillez choisir la prochaine version"
|
||||||
|
case "${nextv%)}" in
|
||||||
|
*-x) incversion=major;;
|
||||||
|
*-z) incversion=minor;;
|
||||||
|
*-p) incversion=patchlevel;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
case "$incversion" in
|
case "$incversion" in
|
||||||
menu) eerror "non implémenté";; #XXX
|
major) psemver_incmajor;;
|
||||||
major) semver_incmajor major minor patchlevel prelease metadata;;
|
minor) psemver_incminor;;
|
||||||
minor) semver_incminor major minor patchlevel prelease metadata;;
|
patchlevel) psemver_incpatchlevel;;
|
||||||
patchlevel) semver_incpatchlevel major minor patchlevel prelease metadata;;
|
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# spécifier prerelease
|
# spécifier prerelease
|
||||||
if [ -n "$setfinal" ]; then
|
if [ -n "$setrelease" ]; then
|
||||||
semver_setprelease "" major minor patchlevel prelease metadata
|
psemver_setprelease ""
|
||||||
elif [ -n "$setprelease" ]; then
|
elif [ -n "$setprelease" ]; then
|
||||||
semver_setprelease "$setprelease" major minor patchlevel prelease metadata
|
psemver_setprelease "$setprelease"
|
||||||
fi
|
fi
|
||||||
if [ -n "$setalpha" ]; then
|
if [ -n "$setalpha" ]; then
|
||||||
:
|
:
|
||||||
|
@ -244,9 +262,9 @@ elif [ "$action" == update ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# spécifier metadata
|
# spécifier metadata
|
||||||
[ -n "$setmetadata" ] && semver_setmetadata "$setmetadata" major minor patchlevel prelease metadata
|
[ -n "$setmetadata" ] && psemver_setmetadata "$setmetadata"
|
||||||
|
|
||||||
semver_setvar version major minor patchlevel prelease metadata
|
psemver_setvar version
|
||||||
if [ -n "$file" ]; then
|
if [ -n "$file" ]; then
|
||||||
echo "$version" >"$file"
|
echo "$version" >"$file"
|
||||||
fi
|
fi
|
||||||
|
|
Loading…
Reference in New Issue