versionner ulib
This commit is contained in:
parent
0ee22f4696
commit
ef4ad5d39e
|
@ -18,6 +18,7 @@ dest="@@dest@@"
|
||||||
for i in ulib ulibsh; do
|
for i in ulib ulibsh; do
|
||||||
sed "s|@@""dest""@@|$dest|g" "ulib/$i" >"/etc/$i"
|
sed "s|@@""dest""@@|$dest|g" "ulib/$i" >"/etc/$i"
|
||||||
done
|
done
|
||||||
|
cp ulib/.ulib_version /etc/.ulib_version
|
||||||
echo >/etc/ulibauto '# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
echo >/etc/ulibauto '# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
||||||
if [ x"$BASH" != x -a -f /etc/ulib ]; then
|
if [ x"$BASH" != x -a -f /etc/ulib ]; then
|
||||||
. /etc/ulib
|
. /etc/ulib
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
1
|
41
ulib/auto
41
ulib/auto
|
@ -7,24 +7,33 @@
|
||||||
# ce fichier n'est pas sourcé, alors le répertoire ulib doit être placé dans le
|
# ce fichier n'est pas sourcé, alors le répertoire ulib doit être placé dans le
|
||||||
# répertoire du script qui inclue ce fichier.
|
# répertoire du script qui inclue ce fichier.
|
||||||
|
|
||||||
if [ -f /etc/ulib ]; then
|
ULIBDIR="${BASH_SOURCE[0]}"
|
||||||
. /etc/ulib
|
if [ -n "$ULIBDIR" -a -f "$ULIBDIR" ]; then
|
||||||
|
# Fichier sourcé
|
||||||
|
ULIBDIR="$(dirname "$ULIBDIR")"
|
||||||
else
|
else
|
||||||
ULIBDIR="${BASH_SOURCE[0]}"
|
# Fichier non sourcé. Tout exprimer par rapport au script courant
|
||||||
if [ -n "$ULIBDIR" -a -f "$ULIBDIR" ]; then
|
ULIBDIR="$(dirname "$0")/ulib"
|
||||||
# Fichier sourcé
|
fi
|
||||||
ULIBDIR="$(dirname "$ULIBDIR")"
|
|
||||||
else
|
|
||||||
# Fichier non sourcé. Tout exprimer par rapport au script courant
|
|
||||||
ULIBDIR="$(dirname "$0")/ulib"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -f "$ULIBDIR/ulib" ]; then
|
function __check_ulib_version() {
|
||||||
. "$ULIBDIR/ulib"
|
# tester si la version ulib du système est plus récente que la version ulib
|
||||||
else
|
# du répertoire courant
|
||||||
echo "error: Unable to find neither $ULIBDIR/ulib nor /etc/ulib" 1>&2
|
local thisver=0 sysver=0
|
||||||
exit 1
|
[ -f "$ULIBDIR/.ulib_version" ] && thisver="$(<"$ULIBDIR/.ulib_version")"
|
||||||
fi
|
[ -f "/etc/.ulib_version" ] && sysver="$(<"/etc/.ulib_version")"
|
||||||
|
[ $sysver -gt $thisver ]
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ -f /etc/ulib ] && __check_ulib_version; then
|
||||||
|
unset -f __check_ulib_version
|
||||||
|
. /etc/ulib
|
||||||
|
elif [ -f "$ULIBDIR/ulib" ]; then
|
||||||
|
unset -f __check_ulib_version
|
||||||
|
. "$ULIBDIR/ulib"
|
||||||
|
else
|
||||||
|
echo "error: Unable to find neither $ULIBDIR/ulib nor /etc/ulib" 1>&2
|
||||||
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
uprovide auto
|
uprovide auto
|
||||||
|
|
|
@ -0,0 +1,56 @@
|
||||||
|
#!/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
|
||||||
|
-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
|
|
@ -0,0 +1,56 @@
|
||||||
|
#!/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)
|
||||||
|
-s, --system
|
||||||
|
Afficher aussi la version de la librairie système
|
||||||
|
-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/ulib" &&
|
||||||
|
urequire DEFAULTS ||
|
||||||
|
exit 1
|
||||||
|
|
||||||
|
action=show
|
||||||
|
system=
|
||||||
|
min_version=
|
||||||
|
parse_opts "${PRETTYOPTS[@]}" \
|
||||||
|
--help '$exit_with display_help' \
|
||||||
|
-l,--show action=show \
|
||||||
|
-s,--system system=1 \
|
||||||
|
-c:,--check: '$set@ min_version; action=check' \
|
||||||
|
@ args -- "$@" && set -- "${args[@]}" || die "$args"
|
||||||
|
|
||||||
|
version=0
|
||||||
|
versionfile="$scriptdir/ulib/.ulib_version"
|
||||||
|
[ -f "$versionfile" ] && version="$(<"$versionfile")"
|
||||||
|
|
||||||
|
if [ "$action" == show ]; then
|
||||||
|
echo "ulib est en version $version"
|
||||||
|
if [ -n "$system" ]; then
|
||||||
|
version=0
|
||||||
|
versionfile="/etc/.ulib_version"
|
||||||
|
[ -f "$versionfile" ] && version="$(<"$versionfile")"
|
||||||
|
echo "/etc/ulib est en version $version"
|
||||||
|
fi
|
||||||
|
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
|
Loading…
Reference in New Issue