nutools/pver

102 lines
4.3 KiB
Bash
Executable File

#!/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 ptools
function pver_display_help() {
uecho "$scriptname: gérer des numéros de version selon les règles du versionage sémantique v2.0.0 (http://semver.org/)
USAGE
$scriptname [options]
OPTIONS
-f, --file VERSIONFILE
Gérer le numéro de version se trouvant dans le fichier spécifié. Le
fichier est créé si nécessaire. C'est l'option par défaut si un fichier
nommé VERSION.txt se trouve dans le répertoire courant.
-e, --maven POMFILE
Gérer le numéro de version se trouvant dans le fichier pom.xml spécifié.
Le fichier DOIT exister. C'est l'option par défaut si un fichier nommé
pom.xml se trouve dans le répertoire courant.
-F, --file-string VERSIONFILE
Prendre pour valeur de départ le contenu du fichier VERSIONFILE (qui
vaut par défaut VERSION.txt)
-g, --git-string [branch:]VERSIONFILE
Prendre pour valeur de départ le contenu du fichier VERSIONFILE (qui
vaut par défaut VERSION.txt) dans la branche BRANCH (qui vaut par défaut
master) du dépôt git situé dans le répertoire courant.
-s, --string VERSION
Prendre pour valeur de départ le numéro de version spécifié
--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
--convert
--no-convert
Activer (resp. désactiver) la conversion automatique. Par défaut, si la
version est au format classique 'x.z[.p]-rDD/MM/YYYY', elle est
convertie automatiquement au format sémantique x.z.p+rYYYYMMDD
--eq VERSION
--ne VERSION
--lt VERSION
--le VERSION
--gt VERSION
--ge VERSION
--same VERSION
--diff VERSION
Comparer avec la version spécifiée. Les opérateurs --eq, --ne, --lt,
--le, --gt, et --ge ignorent l'identifiant de build (comme le demande la
règle du versionage sémantique). Les opérateurs --same et --diff
comparent aussi les identifiants de build.
-v, --set-version VERSION
Spécifier un nouveau numéro de version qui écrase la valeur actuelle.
Cette option ne devrait pas être utilisée en temps normal parce que cela
va contre les règles du versionage sémantique.
--prel
Spécifier un nouveau numéro de version qui écrase la valeur actuelle. Le
numéro de version est obtenu à partir du nom de la branche git courante,
qui doit être de la forme release-VERSION
-u, --update
Mettre à jour le numéro de version.
--menu
Afficher un menu permettant de choisir le composant de la version à
incrémenter
-x, --major
Augmenter le numéro de version majeure
-z, --minor
Augmenter le numéro de version mineure. C'est la valeur par défaut.
-p, --patchlevel
Augmenter le numéro de patch
-l, --prelease ID
Spécifier un identifiant de pré-release, à ajouter au numéro de version.
-a, --alpha
-b, --beta
-r, --rc
Spécifier une pré-release de type alpha, beta, ou rc. Si la version est
déjà dans ce type, augmenter la dernière valeur numérique des composants
de l'identifiant, e.g. alpha deviant alpha.1, beta-1.2 devient beta-1.3,
rc1 devient rc2
XXX ces fonctions ne sont pas encore implémentées
-R, --final, --release
Supprimer l'identifiant de prérelease
-m, --metadata ID
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é.
--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 "$@"