#!/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.
    -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
    --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.
    -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é."
}

pver "$@"