#!/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

function display_help() {
    uecho "$scriptname: configurer ou afficher des informations sur nutools

USAGE
    $scriptname [VERSION]

OPTIONS
    -C, --configure
        Faire la configuration pour l'utilisateur courant en appelant uenv -u
        Avec cette option, l'option -l (ou --local-profiles) est aussi reconnue
        et est passée directement à uenv
    -v, --version
        Afficher la version de nutools installée. C'est l'option par défaut
    -c, --check
        Calculer si la version installée correspond à la version spécifiée
    -o, --oper OPERATOR
        Spécifier l'opérateur à utiliser avec l'option --check (par défaut,
        utiliser l'opérateur ge, qui permet de vérifier si la version minimum
        spécifiée est installée)
    --eq
    --ne
    --lt
    --le
    --gt
    --ge
    --same
    --diff
        Ces options sont des raccourcis. L'option '--OP' est équivalente à
        '--check --op OP'"
}

action=show
local_profiles=
coper=
args=(
    --help '$exit_with display_help'
    -C,--configure action=configure
    -l,--local-profiles local_profiles=1
    -v,--version action=show
    -c,--check action=check
    -o:,--oper:,--op: '$action=check; set@ coper'
    --eq '$action=check; coper=eq'
    --ne '$action=check; coper=ne'
    --lt '$action=check; coper=lt'
    --le '$action=check; coper=le'
    --gt '$action=check; coper=gt'
    --ge '$action=check; coper=ge'
    --same '$action=check; coper=same'
    --diff '$action=check; coper=diff'
)
parse_args "$@"; set -- "${args[@]}"

case "$action" in
configure)
    "$scriptdir/uenv" -u ${local_profiles:+--local-profiles}
    ;;
show)
    setx nutoolsver="$scriptdir/pver" -F "$scriptdir/VERSION.txt" --show
    setx ulibver="$scriptdir/ulib" -v
    if isatty; then
        eecho "Répertoire d'installation: $scriptdir"
        eecho "Version de nutools: ${COULEUR_BLEUE}$nutoolsver${COULEUR_NORMALE}"
        eecho "Version de ulib: ${COULEUR_BLEUE}$ulibver${COULEUR_NORMALE}"
    else
        echo "$nutoolsver"
    fi
    ;;
check)
    [ -n "$coper" ] || coper=ge
    cvers="$1"
    [ -n "$cvers" ] || die "Vous devez spécifier la version pour la comparaison"
    case "$coper" in
    eq|ne|lt|le|gt|ge|same|diff) "$scriptdir/pver" -F "$scriptdir/VERSION.txt" "--$coper" "$cvers";;
    *) die "$coper: Opérateur invalide";;
    esac
    ;;
esac
