#!/bin/bash
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8

function display_help() {
    uecho "$scriptname: Gestion de la version de ulib

USAGE
    $scriptname [options]

OPTIONS
    -l, --show
        Afficher la version de la librairie (par défaut)
    -u, --update
        Incrémenter la version de la librairie. Il faut incrémenter la version
        de la librairie à chaque modification incompatible ou correction de bug.
    -c, --check MIN_VERSION
        Vérifier que la version de la librairie est au minimum MIN_VERSION, et
        afficher un message d'information. Utiliser l'option -q si l'on veut
        juste tester la version et ne pas afficher le message d'information."
}

source "$(dirname "$0")/ulib" &&
urequire DEFAULTS ||
exit 1

action=show
version=0
set_version=
min_version=
parse_opts "${PRETTYOPTS[@]}" \
    --help '$exit_with display_help' \
    -l,--show action=show \
    -u,--update action=update \
    -V:,--set-version: set_version= \
    -c:,--check: '$set@ min_version; action=check' \
    @ args -- "$@" && set -- "${args[@]}" || die "$args"

versionfile="$scriptdir/.ulib_version"
[ -f "$versionfile" ] || echo "$version" >"$versionfile"
version="$(<"$versionfile")"

if [ "$action" == show ]; then
    echo "ulib est en version $version"
elif [ "$action" == update ]; then
    [ -n "$set_version" ] || set_version=$(($version + 1))
    echo "$set_version" >"$versionfile"
    echo "ulib est maintenant en version $set_version"
elif [ "$action" == check ]; then
    r=1
    [ $version -ge $min_version ] && r=0
    if [ $r -eq 0 ]; then
        einfo "ulib est en version $version >= $min_version ${COULEUR_VERTE}[OK]${COULEUR_NORMALE}"
    else
        einfo "ulib est en version $version < $min_version ${COULEUR_ROUGE}[KO]${COULEUR_NORMALE}"
    fi
    exit $r
fi