divers renommages
intégrer ulibshell, ulibsync et ulibversion dans ulib
This commit is contained in:
parent
4100152139
commit
ad66842f02
|
@ -17,5 +17,5 @@ else
|
||||||
nutoolsdir="$(cd "$(dirname "$0")"; pwd)"
|
nutoolsdir="$(cd "$(dirname "$0")"; pwd)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
source "$nutoolsdir/lib/ulib/nutools/pyulib"
|
source "$nutoolsdir/lib/ulib/pyulib/pyulib"
|
||||||
exec "$nutoolsdir/lib/pyulib/src/uapps/$scriptname.py" "$@"
|
exec "$nutoolsdir/lib/pyulib/src/uapps/$scriptname.py" "$@"
|
||||||
|
|
|
@ -19,7 +19,7 @@ dest="@@dest@@"
|
||||||
for i in ulib ulibsh; do
|
for i in ulib ulibsh; do
|
||||||
sed "s|@@""dest""@@|$dest|g" "lib/ulib/$i" >"/etc/$i"
|
sed "s|@@""dest""@@|$dest|g" "lib/ulib/$i" >"/etc/$i"
|
||||||
done
|
done
|
||||||
cp lib/ulib/.ulib_version /etc/.ulib_version
|
cp lib/ulib/.ulibver /etc/.ulibver
|
||||||
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
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
42
|
|
|
@ -0,0 +1 @@
|
||||||
|
000000042
|
|
@ -13,23 +13,52 @@ if [ -n "$ULIBDIR" -a -f "$ULIBDIR" ]; then
|
||||||
ULIBDIR="$(dirname "$ULIBDIR")"
|
ULIBDIR="$(dirname "$ULIBDIR")"
|
||||||
else
|
else
|
||||||
# Fichier non sourcé. Tout exprimer par rapport au script courant
|
# Fichier non sourcé. Tout exprimer par rapport au script courant
|
||||||
ULIBDIR="$(dirname "$0")/ulib"
|
ULIBDIR="$(dirname "$0")"
|
||||||
|
if [ -d "$ULIBDIR/ulib" ]; then
|
||||||
|
ULIBDIR="$ULIBDIR/ulib"
|
||||||
|
elif [ -d "$ULIBDIR/lib/ulib" ]; then
|
||||||
|
ULIBDIR="$ULIBDIR/lib/ulib"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
ULIBDIR="$(cd "$ULIBDIR" 2>/dev/null; pwd)"
|
||||||
|
|
||||||
function __check_ulib_version() {
|
function __ulibver_parse() { # copie verbatim de la fonction parseversion() dans ulib
|
||||||
|
if [ -n "$2" ]; then
|
||||||
|
local version="${1:-${version:-000000000}}"
|
||||||
|
local major minor patch pversion
|
||||||
|
else
|
||||||
|
version="${1:-${version:-000000000}}"
|
||||||
|
fi
|
||||||
|
while [ ${#version} -lt 9 ]; do version="0$version"; done
|
||||||
|
major="${version:0:3}"; while [ ${#major} -gt 1 -a "${major#0}" != "$major" ]; do major="${major#0}"; done
|
||||||
|
minor="${version:3:3}"; while [ ${#minor} -gt 1 -a "${minor#0}" != "$minor" ]; do minor="${minor#0}"; done
|
||||||
|
patch="${version:6:3}"; while [ ${#patch} -gt 1 -a "${patch#0}" != "$patch" ]; do patch="${patch#0}"; done
|
||||||
|
pversion="$major.$minor.$patch"
|
||||||
|
[ -n "$2" ] && eval "${2}version=\$version; ${2}major=\$major; ${2}minor=\$minor; ${2}patch=\$patch; ${2}pversion=\$pversion"
|
||||||
|
}
|
||||||
|
function __ulibver_check() {
|
||||||
# tester si la version ulib du système est plus récente que la version ulib
|
# tester si la version ulib du système est plus récente que la version ulib
|
||||||
# du répertoire courant
|
# du répertoire courant
|
||||||
local thisver=0 sysver=0
|
local version=000000000 major minor patch pversion
|
||||||
[ -f "$ULIBDIR/.ulib_version" ] && thisver="$(<"$ULIBDIR/.ulib_version")"
|
local sversion=000000000 smajor sminor spatch spversion
|
||||||
[ -f "/etc/.ulib_version" ] && sysver="$(<"/etc/.ulib_version")"
|
[ -f "$ULIBDIR/.ulibver" ] && __ulibver_parse "$(<"$ULIBDIR/.ulibver")"
|
||||||
[ $sysver -gt $thisver ]
|
[ -f "/etc/.ulibver" ] && __ulibver_parse "$(<"/etc/.ulibver")" s
|
||||||
|
# la version majeure doit correspondre
|
||||||
|
[ "$smajor" -eq "$major" ] || return 1
|
||||||
|
# puis tester si version mineure plus récente
|
||||||
|
[ "$sminor" -gt "$minor" ] && return 0
|
||||||
|
[ "$sminor" -lt "$minor" ] && return 1
|
||||||
|
# puis tester patchlevel
|
||||||
|
[ "$spatch" -ge "$patch" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
if [ -f /etc/ulib ] && __check_ulib_version; then
|
if [ -f /etc/ulib ] && __ulibver_check; then
|
||||||
unset -f __check_ulib_version
|
unset -f __ulibver_parse
|
||||||
|
unset -f __ulibver_check
|
||||||
. /etc/ulib
|
. /etc/ulib
|
||||||
elif [ -f "$ULIBDIR/ulib" ]; then
|
elif [ -f "$ULIBDIR/ulib" ]; then
|
||||||
unset -f __check_ulib_version
|
unset -f __ulibver_parse
|
||||||
|
unset -f __ulibver_check
|
||||||
. "$ULIBDIR/ulib"
|
. "$ULIBDIR/ulib"
|
||||||
else
|
else
|
||||||
echo "error: Unable to find neither $ULIBDIR/ulib nor /etc/ulib" 1>&2
|
echo "error: Unable to find neither $ULIBDIR/ulib nor /etc/ulib" 1>&2
|
||||||
|
|
|
@ -2536,7 +2536,7 @@ function awkdef() {
|
||||||
# $'values[@]=<\nvalue1\nvalue2'
|
# $'values[@]=<\nvalue1\nvalue2'
|
||||||
# pour un tableau values qui contiendra deux valeurs: value1 et value2
|
# pour un tableau values qui contiendra deux valeurs: value1 et value2
|
||||||
# Avec l'option -f, des fonctions supplémentaires sont définies. Elles sont
|
# Avec l'option -f, des fonctions supplémentaires sont définies. Elles sont
|
||||||
# décrites dans ulib/awk.
|
# décrites dans le module awk.
|
||||||
|
|
||||||
if [ "${1:0:3}" == "-f" ]; then
|
if [ "${1:0:3}" == "-f" ]; then
|
||||||
shift
|
shift
|
||||||
|
@ -4159,7 +4159,7 @@ if [ -z "$ULIBDIR" -o "$ULIBDIR" != "$ULIBINIT" ]; then
|
||||||
# l'utilisateur pour charger manuellement les librairies nécessaires.
|
# l'utilisateur pour charger manuellement les librairies nécessaires.
|
||||||
local ulib_
|
local ulib_
|
||||||
for ulib_ in "$@"; do
|
for ulib_ in "$@"; do
|
||||||
uprovided "$ulib_" || ewarn "$ulib_: this ulib is required"
|
uprovided "$ulib_" || ewarn "$ulib_: this module is required"
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
uprovide base
|
uprovide base
|
||||||
|
|
|
@ -5,17 +5,20 @@
|
||||||
uprovide install
|
uprovide install
|
||||||
urequire base
|
urequire base
|
||||||
|
|
||||||
# Faut-il afficher le nom des fichiers copié/créés?
|
if [ -z "$ULIB_INSTALL_CONFIGURED" ]; then
|
||||||
INSTALL_VERBOSE=1
|
# Faut-il afficher le nom des fichiers copié/créés?
|
||||||
# Faut-il afficher les destinations avec ppath?
|
export ULIB_INSTALL_VERBOSE=1
|
||||||
INSTALL_USES_PPATH=
|
# Faut-il afficher les destinations avec ppath?
|
||||||
|
export ULIB_INSTALL_USES_PPATH=
|
||||||
|
fi
|
||||||
|
export ULIB_INSTALL_CONFIGURED=1
|
||||||
|
|
||||||
function ensure_exists() {
|
function ensure_exists() {
|
||||||
# créer le fichier vide "$1" s'il n'existe pas déjà. retourner vrai si le
|
# créer le fichier vide "$1" s'il n'existe pas déjà. retourner vrai si le
|
||||||
# fichier a été créé sans erreur
|
# fichier a été créé sans erreur
|
||||||
[ -f "$1" ] || {
|
[ -f "$1" ] || {
|
||||||
if [ -n "$INSTALL_VERBOSE" ]; then
|
if [ -n "$ULIB_INSTALL_VERBOSE" ]; then
|
||||||
if [ -n "$INSTALL_USES_PPATH" ]; then
|
if [ -n "$ULIB_INSTALL_USES_PPATH" ]; then
|
||||||
estep "$(ppath "$1")"
|
estep "$(ppath "$1")"
|
||||||
else
|
else
|
||||||
estep "$1"
|
estep "$1"
|
||||||
|
@ -28,24 +31,34 @@ function ensure_exists() {
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function __ulib_install_show_args() {
|
||||||
|
if [ -z "$ULIB_INSTALL_VERBOSE" ]; then
|
||||||
|
:
|
||||||
|
elif [ -n "$ULIB_INSTALL_USES_PPATH" ]; then
|
||||||
|
estep "$1 --> $(ppath "$2")${3:+/}"
|
||||||
|
else
|
||||||
|
estep "$1 --> $2${3:+/}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
function copy_replace() {
|
function copy_replace() {
|
||||||
# Copier de façon inconditionnelle le fichier $1 vers le fichier $2
|
# Copier de façon inconditionnelle le fichier $1 vers le fichier $2
|
||||||
local src="$1" dest="$2"
|
local src="$1" dest="$2"
|
||||||
local srcname="$(basename "$src")"
|
local srcname="$(basename -- "$src")"
|
||||||
|
|
||||||
[ -d "$dest" ] && dest="$dest/$srcname"
|
[ -d "$dest" ] && dest="$dest/$srcname"
|
||||||
mkdirof "$dest" || return 1
|
mkdirof "$dest" || return 1
|
||||||
|
|
||||||
if [ -n "$INSTALL_VERBOSE" ]; then
|
if [ -n "$ULIB_INSTALL_VERBOSE" ]; then
|
||||||
local msg destname
|
local destarg destname slash
|
||||||
if [ -n "$INSTALL_USES_PPATH" ]; then
|
destarg="$(dirname -- "$dest")"
|
||||||
msg="$srcname --> $(ppath "$(dirname "$dest")")/"
|
destname="$(basename -- "$dest")"
|
||||||
|
if [ "$srcname" == "$destname" ]; then
|
||||||
|
slash=1
|
||||||
else
|
else
|
||||||
msg="$srcname --> $(dirname "$dest")/"
|
destarg="$destarg/$destname"
|
||||||
fi
|
fi
|
||||||
destname="$(basename "$dest")"
|
__ulib_install_show_args "$srcname" "$destarg" "$slash"
|
||||||
[ "$srcname" == "$destname" ] || msg="$msg$destname"
|
|
||||||
estep "$msg"
|
|
||||||
fi
|
fi
|
||||||
cp "$src" "$dest"
|
cp "$src" "$dest"
|
||||||
}
|
}
|
||||||
|
@ -56,7 +69,7 @@ function copy_new() {
|
||||||
# Retourner vrai si le fichier a été copié sans erreur
|
# Retourner vrai si le fichier a été copié sans erreur
|
||||||
local src="$1" dest="$2"
|
local src="$1" dest="$2"
|
||||||
|
|
||||||
[ -d "$dest" ] && dest="$dest/$(basename "$src")"
|
[ -d "$dest" ] && dest="$dest/$(basename -- "$src")"
|
||||||
mkdirof "$dest" || return 1
|
mkdirof "$dest" || return 1
|
||||||
|
|
||||||
if [ ! -e "$dest" ]; then
|
if [ ! -e "$dest" ]; then
|
||||||
|
@ -72,7 +85,7 @@ function copy_update() {
|
||||||
# Retourner vrai si le fichier a été copié sans erreur.
|
# Retourner vrai si le fichier a été copié sans erreur.
|
||||||
local src="$1" dest="$2"
|
local src="$1" dest="$2"
|
||||||
|
|
||||||
[ -d "$dest" ] && dest="$dest/$(basename "$src")"
|
[ -d "$dest" ] && dest="$dest/$(basename -- "$src")"
|
||||||
mkdirof "$dest" || return 1
|
mkdirof "$dest" || return 1
|
||||||
|
|
||||||
if [ ! -e "$dest" ]; then
|
if [ ! -e "$dest" ]; then
|
||||||
|
@ -92,7 +105,7 @@ function copy_update_ask() {
|
||||||
# Retourner vrai si le fichier a été copié sans erreur.
|
# Retourner vrai si le fichier a été copié sans erreur.
|
||||||
local src="$1" dest="$2"
|
local src="$1" dest="$2"
|
||||||
|
|
||||||
[ -d "$dest" ] && dest="$dest/$(basename "$src")"
|
[ -d "$dest" ] && dest="$dest/$(basename -- "$src")"
|
||||||
mkdirof "$dest" || return 1
|
mkdirof "$dest" || return 1
|
||||||
|
|
||||||
[ -f "$dest" ] || copy_replace "$src" "$dest"
|
[ -f "$dest" ] || copy_replace "$src" "$dest"
|
||||||
|
@ -116,12 +129,7 @@ function copy_tree() {
|
||||||
function link_new() {
|
function link_new() {
|
||||||
# Si $2 n'existe pas, créer le lien symbolique $2 pointant vers $1
|
# Si $2 n'existe pas, créer le lien symbolique $2 pointant vers $1
|
||||||
[ -e "$2" ] && return 0
|
[ -e "$2" ] && return 0
|
||||||
if [ -n "$INSTALL_VERBOSE" ]; then
|
|
||||||
if [ -n "$INSTALL_USES_PPATH" ]; then
|
__ulib_install_show_args "$(basename -- "$2")" "$(dirname -- "$1")"
|
||||||
estep "$(basename "$2") --> $(ppath "$(dirname "$1")")"
|
|
||||||
else
|
|
||||||
estep "$(basename "$2") --> $(dirname "$1")"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
ln -s "$1" "$2"
|
ln -s "$1" "$2"
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
## Fonction de support pour mkcrypt: cryptage de mots de passe
|
## Fonction de support pour mkcrypt: cryptage de mots de passe
|
||||||
##@cooked nocomments
|
##@cooked nocomments
|
||||||
##@require ulib
|
##@require ulib
|
||||||
##@require nutools/pyulib
|
##@require pyulib/pyulib
|
||||||
uprovide mkcrypt
|
uprovide mkcrypt
|
||||||
urequire ulib nutools/pyulib
|
urequire ulib pyulib/pyulib
|
||||||
|
|
||||||
function mkcrypt() { "$ULIBDIR/support/mkcrypt.py" "$@"; }
|
function mkcrypt() { "$ULIBDIR/support/mkcrypt.py" "$@"; }
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
##@cooked comments # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
##@cooked comments # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
||||||
## Donner accès à l'outil plbck.py
|
## Donner accès à l'outil plbck.py
|
||||||
##@cooked nocomments
|
##@cooked nocomments
|
||||||
urequire nutools/pyulib
|
urequire pyulib/pyulib
|
||||||
|
|
||||||
function plbck() { python "$PYULIBDIR/src/uapps/plbck.py" "$@"; }
|
function plbck() { python "$PYULIBDIR/src/uapps/plbck.py" "$@"; }
|
|
@ -1,6 +1,6 @@
|
||||||
##@cooked comments # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
##@cooked comments # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
||||||
## Donner accès à l'outil plver.py
|
## Donner accès à l'outil plver.py
|
||||||
##@cooked nocomments
|
##@cooked nocomments
|
||||||
urequire nutools/pyulib
|
urequire pyulib/pyulib
|
||||||
|
|
||||||
function plver() { python "$PYULIBDIR/src/uapps/plver.py" "$@"; }
|
function plver() { python "$PYULIBDIR/src/uapps/plver.py" "$@"; }
|
|
@ -1,5 +1,5 @@
|
||||||
##@cooked comments # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
##@cooked comments # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
||||||
## Accéder aux librairies python *locales* de pyulib
|
## Configurer l'accès aux librairies python *locales* de pyulib
|
||||||
##@cooked nocomments
|
##@cooked nocomments
|
||||||
|
|
||||||
# Modifier PYTHONPATH de façon que les librairies de pyulib *locales* soient
|
# Modifier PYTHONPATH de façon que les librairies de pyulib *locales* soient
|
||||||
|
@ -23,15 +23,20 @@ if [ -z "$PYULIBDIR" ]; then
|
||||||
PYULIBDIR="$(dirname "$PYULIBDIR")/../../pyulib"
|
PYULIBDIR="$(dirname "$PYULIBDIR")/../../pyulib"
|
||||||
else
|
else
|
||||||
# Fichier non sourcé. Tout exprimer par rapport au script courant
|
# Fichier non sourcé. Tout exprimer par rapport au script courant
|
||||||
PYULIBDIR="$(dirname "$0")/pyulib"
|
PYULIBDIR="$(dirname "$0")"
|
||||||
|
if [ -d "$PYULIBDIR/pyulib" ]; then
|
||||||
|
PYULIBDIR="$PYULIBDIR/pyulib"
|
||||||
|
elif [ -d "$PYULIBDIR/lib/pyulib" ]; then
|
||||||
|
PYULIBDIR="$PYULIBDIR/lib/pyulib"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
PYULIBDIR="$(cd "$PYULIBDIR"; pwd)"
|
PYULIBDIR="$(cd "$PYULIBDIR" 2>/dev/null; pwd)"
|
||||||
|
|
||||||
export PYTHONPATH="$PYULIBDIR/src${PYTHONPATH:+:$PYTHONPATH}"
|
export PYTHONPATH="$PYULIBDIR/src${PYTHONPATH:+:$PYTHONPATH}"
|
||||||
|
|
||||||
function pyulib_sync() {
|
function pyulibsync() {
|
||||||
# Synchroniser les librairies pyulib dans le répertoire $1
|
# Synchroniser les librairies pyulib dans le répertoire $1
|
||||||
destdir="$(abspath "${1:-.}")"
|
local destdir="$(abspath "${1:-.}")"
|
||||||
[ "$destdir/pyulib" != "$PYULIBDIR" ] && cpdirnovcs "$PYULIBDIR" "$destdir/pyulib"
|
[ "$destdir/pyulib" != "$PYULIBDIR" ] && cpdirnovcs "$PYULIBDIR" "$destdir/pyulib"
|
||||||
}
|
}
|
|
@ -1,6 +1,6 @@
|
||||||
##@cooked comments # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
##@cooked comments # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
||||||
## Donner accès à l'outil uencdetect.py
|
## Donner accès à l'outil uencdetect.py
|
||||||
##@cooked nocomments
|
##@cooked nocomments
|
||||||
urequire nutools/pyulib
|
urequire pyulib/pyulib
|
||||||
|
|
||||||
function uencdetect() { python "$PYULIBDIR/src/uapps/uencdetect.py" "$@"; }
|
function uencdetect() { python "$PYULIBDIR/src/uapps/uencdetect.py" "$@"; }
|
|
@ -1,6 +1,6 @@
|
||||||
##@cooked comments # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
##@cooked comments # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
||||||
## Donner accès à l'outil umail.py
|
## Donner accès à l'outil umail.py
|
||||||
##@cooked nocomments
|
##@cooked nocomments
|
||||||
urequire nutools/pyulib
|
urequire pyulib/pyulib
|
||||||
|
|
||||||
function umail() { python "$PYULIBDIR/src/uapps/umail.py" "$@"; }
|
function umail() { python "$PYULIBDIR/src/uapps/umail.py" "$@"; }
|
|
@ -834,9 +834,9 @@ function runs_initworkdir() {
|
||||||
>"$RUNSEXPORTDIR/remoteroot"
|
>"$RUNSEXPORTDIR/remoteroot"
|
||||||
|
|
||||||
# synchronisation ulib
|
# synchronisation ulib
|
||||||
urequire ulib nutools/pyulib
|
urequire ulib pyulib/pyulib
|
||||||
ulib_sync "$RUNSEXPORTDIR"
|
ulibsync "$RUNSEXPORTDIR"
|
||||||
pyulib_sync "$RUNSEXPORTDIR"
|
pyulibsync "$RUNSEXPORTDIR"
|
||||||
|
|
||||||
# copie runs, uinst
|
# copie runs, uinst
|
||||||
cp "$RUNSSRCDIR/runs" "$RUNSEXPORTDIR"
|
cp "$RUNSSRCDIR/runs" "$RUNSEXPORTDIR"
|
||||||
|
|
|
@ -13,6 +13,11 @@ elif [ "$0" == "-bash" ]; then
|
||||||
scriptname=
|
scriptname=
|
||||||
scriptdir=
|
scriptdir=
|
||||||
script=
|
script=
|
||||||
|
elif [ ! -f "$0" -a -f "${0#-}" ]; then
|
||||||
|
scriptname="$(basename -- "${0#-}")"
|
||||||
|
scriptdir="$(dirname -- "${0#-}")"
|
||||||
|
scriptdir="$(cd "$scriptdir"; pwd)"
|
||||||
|
script="$scriptdir/$scriptname"
|
||||||
else
|
else
|
||||||
scriptname="$(basename -- "$0")"
|
scriptname="$(basename -- "$0")"
|
||||||
scriptdir="$(dirname -- "$0")"
|
scriptdir="$(dirname -- "$0")"
|
||||||
|
@ -3222,7 +3227,7 @@ if [ -z "$ULIBDIR" -o "$ULIBDIR" != "$ULIBINIT" ]; then
|
||||||
function urequire() {
|
function urequire() {
|
||||||
local ulib_
|
local ulib_
|
||||||
for ulib_ in "$@"; do
|
for ulib_ in "$@"; do
|
||||||
uprovided "$ulib_" || ewarn "$ulib_: this ulib is required"
|
uprovided "$ulib_" || ewarn "$ulib_: this module is required"
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
uprovide base
|
uprovide base
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
## Fonction de support pour uinc: pliage/dépliage d'inclusions
|
## Fonction de support pour uinc: pliage/dépliage d'inclusions
|
||||||
##@cooked nocomments
|
##@cooked nocomments
|
||||||
##@require ulib
|
##@require ulib
|
||||||
##@require nutools/pyulib
|
##@require pyulib/pyulib
|
||||||
uprovide uinc
|
uprovide uinc
|
||||||
urequire ulib nutools/pyulib
|
urequire ulib pyulib/pyulib
|
||||||
|
|
||||||
function uinc() { "$ULIBDIR/support/uinc.py" "$@"; }
|
function uinc() { "$ULIBDIR/support/uinc.py" "$@"; }
|
||||||
|
|
|
@ -7,10 +7,10 @@
|
||||||
##@require compat
|
##@require compat
|
||||||
##@require udir
|
##@require udir
|
||||||
##@require prefixes
|
##@require prefixes
|
||||||
##@require nutools/pyulib
|
##@require pyulib/pyulib
|
||||||
##@require uinc
|
##@require uinc
|
||||||
uprovide uinst
|
uprovide uinst
|
||||||
urequire ulib base sysinfos compat udir prefixes nutools/pyulib uinc
|
urequire ulib base sysinfos compat udir prefixes pyulib/pyulib uinc
|
||||||
|
|
||||||
function uinst() {
|
function uinst() {
|
||||||
# lancer uinst en déclarant les variables locales, de façon à ne pas polluer
|
# lancer uinst en déclarant les variables locales, de façon à ne pas polluer
|
||||||
|
@ -93,8 +93,24 @@ OPTIONS
|
||||||
|
|
||||||
# Définir ULIBDIR, PYULIBDIR et UINST si ce n'est pas le cas.
|
# Définir ULIBDIR, PYULIBDIR et UINST si ce n'est pas le cas.
|
||||||
# Ces variables sont utilisées par les scripts
|
# Ces variables sont utilisées par les scripts
|
||||||
ULIBDIR="${ULIBDIR:-$scriptdir/ulib}"
|
if [ -z "$ULIBDIR" ]; then
|
||||||
PYULIBDIR="${PYULIBDIR:-$scriptdir/pyulib}"
|
if [ -d "$scriptdir/ulib" ]; then
|
||||||
|
ULIBDIR="$scriptdir/ulib"
|
||||||
|
elif [ -d "$scriptdir/lib/ulib" ]; then
|
||||||
|
ULIBDIR="$scriptdir/lib/ulib"
|
||||||
|
else
|
||||||
|
ULIBDIR="$scriptdir/ulib"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ -z "$PYULIBDIR" ]; then
|
||||||
|
if [ -d "$scriptdir/pyulib" ]; then
|
||||||
|
PYULIBDIR="$scriptdir/pyulib"
|
||||||
|
elif [ -d "$scriptdir/lib/pyulib" ]; then
|
||||||
|
PYULIBDIR="$scriptdir/lib/pyulib"
|
||||||
|
else
|
||||||
|
PYULIBDIR="$scriptdir/pyulib"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
UINST="${UINST:-$script}"
|
UINST="${UINST:-$script}"
|
||||||
|
|
||||||
eval "$(utools_local)"
|
eval "$(utools_local)"
|
||||||
|
@ -280,7 +296,8 @@ Ce projet pourra ensuite être installé avec uinst"
|
||||||
ask_yesno "Faut-il déployer le projet dans /usr/local?" O && copy_files=1
|
ask_yesno "Faut-il déployer le projet dans /usr/local?" O && copy_files=1
|
||||||
eend
|
eend
|
||||||
|
|
||||||
[ -n "$ulibsync" ] && ulib_sync "$srcdir"
|
mkdir -p "$srcdir/lib"
|
||||||
|
[ -n "$ulibsync" ] && ulibsync "$srcdir/lib"
|
||||||
|
|
||||||
udir_update "$srcdir" "udir_types=$udir_types" "${UINST_DEFAULTS[@]}"
|
udir_update "$srcdir" "udir_types=$udir_types" "${UINST_DEFAULTS[@]}"
|
||||||
[ -n "$copy_files" ] && copy_files=true || copy_files=false
|
[ -n "$copy_files" ] && copy_files=true || copy_files=false
|
||||||
|
@ -304,7 +321,8 @@ __uaddpath "@@dest@@" PATH' >"$genfile"
|
||||||
[ -f "$genfile" ] || echo '# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
[ -f "$genfile" ] || echo '# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
||||||
|
|
||||||
source "$@" || exit 1
|
source "$@" || exit 1
|
||||||
source "$ULIBDIR/ulib" && urequire DEFAULTS || exit 1' >"$genfile"
|
source "$ULIBDIR/ulib" || exit 1
|
||||||
|
urequire DEFAULTS' >"$genfile"
|
||||||
fi
|
fi
|
||||||
if [ -n "$rootconf" ]; then
|
if [ -n "$rootconf" ]; then
|
||||||
genfile="$srcdir/lib/uinst/rootconf"
|
genfile="$srcdir/lib/uinst/rootconf"
|
||||||
|
@ -312,7 +330,8 @@ source "$ULIBDIR/ulib" && urequire DEFAULTS || exit 1' >"$genfile"
|
||||||
[ -f "$genfile" ] || echo '# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
[ -f "$genfile" ] || echo '# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
||||||
|
|
||||||
source "$@" || exit 1
|
source "$@" || exit 1
|
||||||
source "$ULIBDIR/ulib" && urequire DEFAULTS || exit 1' >"$genfile"
|
source "$ULIBDIR/ulib" || exit 1
|
||||||
|
urequire DEFAULTS' >"$genfile"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
else
|
else
|
||||||
|
@ -440,7 +459,7 @@ Essayez avec 'uinst -C'"
|
||||||
ewarn "$(get_color y)*GNU*$(get_color z)awk est requis mais n'est pas installé. Ce script va continuer, mais les résultats ne sont pas garantis."
|
ewarn "$(get_color y)*GNU*$(get_color z)awk est requis mais n'est pas installé. Ce script va continuer, mais les résultats ne sont pas garantis."
|
||||||
fi
|
fi
|
||||||
# s'assurer que les libraries *locales* sont dans PYTHONPATH
|
# s'assurer que les libraries *locales* sont dans PYTHONPATH
|
||||||
source "$ULIBDIR/nutools/pyulib"
|
source "$ULIBDIR/pyulib/pyulib"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$UINST_AUTOPREFIX" ]; then
|
if [ -n "$UINST_AUTOPREFIX" ]; then
|
||||||
|
@ -587,8 +606,8 @@ function __uinst_prepare_workdir() {
|
||||||
function __uinst_prepare_ulib() {
|
function __uinst_prepare_ulib() {
|
||||||
# Copie l'environnement de déploiement dans $UINST_PREPARE_DIR
|
# Copie l'environnement de déploiement dans $UINST_PREPARE_DIR
|
||||||
estep "Copie de l'environnement de déploiement"
|
estep "Copie de l'environnement de déploiement"
|
||||||
ulib_sync "$UINST_PREPARE_DIR"
|
ulibsync "$UINST_PREPARE_DIR"
|
||||||
pyulib_sync "$UINST_PREPARE_DIR"
|
pyulibsync "$UINST_PREPARE_DIR"
|
||||||
echo '#!/bin/sh
|
echo '#!/bin/sh
|
||||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
||||||
if . `dirname "$0"`/ulib/ulibsh; then
|
if . `dirname "$0"`/ulib/ulibsh; then
|
||||||
|
@ -735,7 +754,7 @@ function __uinst_udir2s() {
|
||||||
set_var_cmd "ULIBDIR" "$ULIBDIR" >>"$__uinst_config"
|
set_var_cmd "ULIBDIR" "$ULIBDIR" >>"$__uinst_config"
|
||||||
set_var_cmd "UINST" "$UINST" >>"$__uinst_config"
|
set_var_cmd "UINST" "$UINST" >>"$__uinst_config"
|
||||||
# ulib recalcule systématiquement la valeur de ULIBDIR. Pareil pour
|
# ulib recalcule systématiquement la valeur de ULIBDIR. Pareil pour
|
||||||
# nutools/pyulib. Mais cela ne fonctionne pas si nous déployons sur une
|
# pyulib/pyulib. Mais cela ne fonctionne pas si nous déployons sur une
|
||||||
# machine avec bash 2.x. Il faut donc forcer l'utilisation de la valeur
|
# machine avec bash 2.x. Il faut donc forcer l'utilisation de la valeur
|
||||||
# calculée.
|
# calculée.
|
||||||
set_var_cmd "FORCED_ULIBDIR" "$ULIBDIR" >>"$__uinst_config"
|
set_var_cmd "FORCED_ULIBDIR" "$ULIBDIR" >>"$__uinst_config"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
##@cooked comments # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
##@cooked comments # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
||||||
## Charger les librairies de ulib. Nécessite bash.
|
## Charger ulib. Nécessite bash.
|
||||||
##@cooked nocomments
|
##@cooked nocomments
|
||||||
|
|
||||||
# Ce fichier doit être *sourcé*. Si ce fichier n'est pas sourcé, alors le
|
# Ce fichier doit être *sourcé*. Si ce fichier n'est pas sourcé, alors le
|
||||||
|
@ -32,20 +32,25 @@ if [ "$ULIBDIR" = "@@""dest""@@/lib/ulib" ]; then
|
||||||
ULIBDIR="$(dirname "$ULIBDIR")"
|
ULIBDIR="$(dirname "$ULIBDIR")"
|
||||||
else
|
else
|
||||||
# Fichier non sourcé. Tout exprimer par rapport au script courant
|
# Fichier non sourcé. Tout exprimer par rapport au script courant
|
||||||
ULIBDIR="$(dirname "$0")/ulib"
|
ULIBDIR="$(dirname "$0")"
|
||||||
|
if [ -d "$ULIBDIR/ulib" ]; then
|
||||||
|
ULIBDIR="$ULIBDIR/ulib"
|
||||||
|
elif [ -d "$ULIBDIR/lib/ulib" ]; then
|
||||||
|
ULIBDIR="$ULIBDIR/lib/ulib"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
ULIBDIR="$(cd "$ULIBDIR"; pwd)"
|
ULIBDIR="$(cd "$ULIBDIR" 2>/dev/null; pwd)"
|
||||||
ULIBDIRS=("$ULIBDIR")
|
ULIBDIRS=("$ULIBDIR")
|
||||||
|
|
||||||
# marqueur pour tester si ulib a été chargé. Il faut avoir $ULIBINIT==$ULIBDIR
|
# marqueur pour tester si ulib a été réellement chargé. Il faut avoir $ULIBINIT==$ULIBDIR
|
||||||
ULIBINIT="$ULIBDIR"
|
ULIBINIT="$ULIBDIR"
|
||||||
|
|
||||||
# liste des fichiers sourcés par urequire
|
# liste des fichiers sourcés par urequire
|
||||||
[ -n "$ULIBPROVIDED" ] || ULIBPROVIDED=(ulib)
|
[ -n "$ULIBPROVIDED" ] || ULIBPROVIDED=(ulib)
|
||||||
|
|
||||||
function uprovided() {
|
function uprovided() {
|
||||||
# Tester si la ulibrairie $1 a déjà été chargé par urequire
|
# Tester si le module $1 a déjà été chargé par urequire
|
||||||
local ulib_
|
local ulib_
|
||||||
for ulib_ in "${ULIBPROVIDED[@]}"; do
|
for ulib_ in "${ULIBPROVIDED[@]}"; do
|
||||||
[ "$ulib_" == "$1" ] && return 0
|
[ "$ulib_" == "$1" ] && return 0
|
||||||
|
@ -54,8 +59,7 @@ function uprovided() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function uprovide() {
|
function uprovide() {
|
||||||
# Spécifier que la ulibrairie $1 a été sourcée, ou prétendre que c'est le
|
# Spécifier que le module $1 a été sourcée, ou prétendre que c'est le cas.
|
||||||
# cas.
|
|
||||||
uprovided "$1" && return 0
|
uprovided "$1" && return 0
|
||||||
ULIBPROVIDED=("${ULIBPROVIDED[@]}" "$1")
|
ULIBPROVIDED=("${ULIBPROVIDED[@]}" "$1")
|
||||||
}
|
}
|
||||||
|
@ -91,13 +95,13 @@ function urequire() {
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
function ulib_add() {
|
function ulibadd() {
|
||||||
# Ajouter $1 au chemin de recherche de urequire
|
# Ajouter $1 au chemin de recherche de urequire
|
||||||
[ -d "$1" ] && ULIBDIRS=("${ULIBDIRS[@]}" "$(cd "$1"; pwd)")
|
[ -d "$1" ] && ULIBDIRS=("${ULIBDIRS[@]}" "$(cd "$1"; pwd)")
|
||||||
}
|
}
|
||||||
|
|
||||||
function ulib_sync() {
|
function ulibsync() {
|
||||||
# Synchroniser les librairies ulib dans le répertoire $1
|
# Synchroniser les modules de ulib dans le répertoire $1
|
||||||
destdir="$(abspath "${1:-.}")"
|
local destdir="$(abspath "${1:-.}")"
|
||||||
[ "$destdir/ulib" != "$ULIBDIR" ] && cpdirnovcs "$ULIBDIR" "$destdir/ulib"
|
[ "$destdir/ulib" != "$ULIBDIR" ] && cpdirnovcs "$ULIBDIR" "$destdir/ulib"
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,10 +31,15 @@ if [ "$ULIBDIR" = "@@""dest""@@/lib/ulib" ]; then
|
||||||
if [ -n "$ULIBDIR" -a -f "$ULIBDIR" ]; then
|
if [ -n "$ULIBDIR" -a -f "$ULIBDIR" ]; then
|
||||||
ULIBDIR="$(dirname "$ULIBDIR")"
|
ULIBDIR="$(dirname "$ULIBDIR")"
|
||||||
else
|
else
|
||||||
ULIBDIR="$(dirname "$0")/ulib"
|
ULIBDIR="$(dirname "$0")"
|
||||||
|
if [ -d "$ULIBDIR/ulib" ]; then
|
||||||
|
ULIBDIR="$ULIBDIR/ulib"
|
||||||
|
elif [ -d "$ULIBDIR/lib/ulib" ]; then
|
||||||
|
ULIBDIR="$ULIBDIR/lib/ulib"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
ULIBDIR="$(cd "$ULIBDIR"; pwd)"
|
ULIBDIR="$(cd "$ULIBDIR" 2>/dev/null; pwd)"
|
||||||
ULIBDIRS=("$ULIBDIR")
|
ULIBDIRS=("$ULIBDIR")
|
||||||
|
|
||||||
ULIBINIT="$ULIBDIR"
|
ULIBINIT="$ULIBDIR"
|
||||||
|
@ -82,12 +87,12 @@ function urequire() {
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
function ulib_add() {
|
function ulibadd() {
|
||||||
[ -d "$1" ] && ULIBDIRS=("${ULIBDIRS[@]}" "$(cd "$1"; pwd)")
|
[ -d "$1" ] && ULIBDIRS=("${ULIBDIRS[@]}" "$(cd "$1"; pwd)")
|
||||||
}
|
}
|
||||||
|
|
||||||
function ulib_sync() {
|
function ulibsync() {
|
||||||
destdir="$(abspath "${1:-.}")"
|
local destdir="$(abspath "${1:-.}")"
|
||||||
[ "$destdir/ulib" != "$ULIBDIR" ] && cpdirnovcs "$ULIBDIR" "$destdir/ulib"
|
[ "$destdir/ulib" != "$ULIBDIR" ] && cpdirnovcs "$ULIBDIR" "$destdir/ulib"
|
||||||
}
|
}
|
||||||
##@inc]ulib
|
##@inc]ulib
|
||||||
|
|
2
ruinst
2
ruinst
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
# -*- 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
|
source "$(dirname "$0")/lib/ulib/ulib" || exit 1
|
||||||
urequire DEFAULTS nutools/pyulib
|
urequire DEFAULTS pyulib/pyulib
|
||||||
|
|
||||||
function display_help() {
|
function display_help() {
|
||||||
uecho "$scriptname: Déploiement distant avec uinst
|
uecho "$scriptname: Déploiement distant avec uinst
|
||||||
|
|
7
ucrontab
7
ucrontab
|
@ -101,6 +101,11 @@ elif [ "$0" == "-bash" ]; then
|
||||||
scriptname=
|
scriptname=
|
||||||
scriptdir=
|
scriptdir=
|
||||||
script=
|
script=
|
||||||
|
elif [ ! -f "$0" -a -f "${0#-}" ]; then
|
||||||
|
scriptname="$(basename -- "${0#-}")"
|
||||||
|
scriptdir="$(dirname -- "${0#-}")"
|
||||||
|
scriptdir="$(cd "$scriptdir"; pwd)"
|
||||||
|
script="$scriptdir/$scriptname"
|
||||||
else
|
else
|
||||||
scriptname="$(basename -- "$0")"
|
scriptname="$(basename -- "$0")"
|
||||||
scriptdir="$(dirname -- "$0")"
|
scriptdir="$(dirname -- "$0")"
|
||||||
|
@ -3310,7 +3315,7 @@ if [ -z "$ULIBDIR" -o "$ULIBDIR" != "$ULIBINIT" ]; then
|
||||||
function urequire() {
|
function urequire() {
|
||||||
local ulib_
|
local ulib_
|
||||||
for ulib_ in "$@"; do
|
for ulib_ in "$@"; do
|
||||||
uprovided "$ulib_" || ewarn "$ulib_: this ulib is required"
|
uprovided "$ulib_" || ewarn "$ulib_: this module is required"
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
uprovide base
|
uprovide base
|
||||||
|
|
|
@ -0,0 +1,355 @@
|
||||||
|
#!/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: Gestion des librairies ulib et pyulib
|
||||||
|
|
||||||
|
USAGE
|
||||||
|
$scriptname [options] --destdir DESTDIR [options]
|
||||||
|
$scriptname [options] --version [options]
|
||||||
|
$scriptname [options] --shell [options]
|
||||||
|
|
||||||
|
SYNCHRONISER ULIB/PYULIB
|
||||||
|
-S, --sync
|
||||||
|
Synchroniser ulib, pyulib et les scripts de support
|
||||||
|
-d, --destdir DESTDIR
|
||||||
|
Synchroniser ulib et/ou pyulib dans le répertoire destdir.
|
||||||
|
Les options -u et -p permettent de choisir ce qui est synchronisé
|
||||||
|
-u, --ulib
|
||||||
|
Copier/mettre à jour ulib (par défaut)
|
||||||
|
-p, --pyulib
|
||||||
|
Copier/mettre à jour pyulib
|
||||||
|
-s, --support
|
||||||
|
Copier/mettre à jour les scripts de support
|
||||||
|
|
||||||
|
GERER LA VERSION DE ULIB
|
||||||
|
-v, --version
|
||||||
|
Gérer la version de ulib
|
||||||
|
-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.
|
||||||
|
-V, --set-version VERSION
|
||||||
|
Forcer la version de ulib
|
||||||
|
-u, --update
|
||||||
|
Incrémenter la version de ulib. Les options -x, -z, -p permettent de
|
||||||
|
choisir le numéro qui est incrémenté.
|
||||||
|
-x, --major
|
||||||
|
Augmenter le numéro de version majeure
|
||||||
|
-z, --minor
|
||||||
|
Augmenter le numéro de version mineure. C'est l'option par défaut
|
||||||
|
-p, --patchlevel
|
||||||
|
Augementer le numéro de patch
|
||||||
|
|
||||||
|
LANCER UN SHELL (par défaut)
|
||||||
|
-s, --shell
|
||||||
|
Lancer un shell dans lequel les modules de ulib spécifiés sont chargés.
|
||||||
|
De plus, PATH est modifié pour que $scriptdir soit ajouté en premier.
|
||||||
|
Les arguments restants sont passés inchangés au shell.
|
||||||
|
-r, --require module
|
||||||
|
Spécifier un module à charger avec urequire. Plusieurs modules peuvent
|
||||||
|
être spécifiés en les séparant par ':'
|
||||||
|
Par défaut, seul le module DEFAULTS est chargé."
|
||||||
|
}
|
||||||
|
|
||||||
|
function formatversion() {
|
||||||
|
local major="${1:-${major:-0}}" minor="${2:-${minor:-0}}" patch="${3:-${patch:-0}}"
|
||||||
|
while [ ${#major} -lt 3 ]; do major="0$major"; done
|
||||||
|
while [ ${#minor} -lt 3 ]; do minor="0$minor"; done
|
||||||
|
while [ ${#patch} -lt 3 ]; do patch="0$patch"; done
|
||||||
|
echo "$major$minor$patch"
|
||||||
|
}
|
||||||
|
|
||||||
|
function parsepversion() {
|
||||||
|
local v M m p
|
||||||
|
if [[ "$1" == *.* ]]; then
|
||||||
|
local v="$1"; shift
|
||||||
|
local M=0 m=0 p=0
|
||||||
|
if [[ "$v" == *.* ]]; then
|
||||||
|
p="${v##*.}"; v="${v%.*}"
|
||||||
|
if [[ "$v" == *.* ]]; then
|
||||||
|
m="${v##*.}"; v="${v%.*}"
|
||||||
|
if [[ "$v" == *.* ]]; then
|
||||||
|
M="${v##*.}"; v="${v%.*}"
|
||||||
|
else
|
||||||
|
M="$v"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
m="$v"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
p="$v"
|
||||||
|
fi
|
||||||
|
parseversion "$(formatversion "$M" "$m" "$p")" "$@"
|
||||||
|
else
|
||||||
|
parseversion "$@"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function parseversion() {
|
||||||
|
if [ -n "$2" ]; then
|
||||||
|
local version="${1:-${version:-000000000}}"
|
||||||
|
local major minor patch pversion
|
||||||
|
else
|
||||||
|
version="${1:-${version:-000000000}}"
|
||||||
|
fi
|
||||||
|
while [ ${#version} -lt 9 ]; do version="0$version"; done
|
||||||
|
major="${version:0:3}"; while [ ${#major} -gt 1 -a "${major#0}" != "$major" ]; do major="${major#0}"; done
|
||||||
|
minor="${version:3:3}"; while [ ${#minor} -gt 1 -a "${minor#0}" != "$minor" ]; do minor="${minor#0}"; done
|
||||||
|
patch="${version:6:3}"; while [ ${#patch} -gt 1 -a "${patch#0}" != "$patch" ]; do patch="${patch#0}"; done
|
||||||
|
pversion="$major.$minor.$patch"
|
||||||
|
[ -n "$2" ] && eval "${2}version=\$version; ${2}major=\$major; ${2}minor=\$minor; ${2}patch=\$patch; ${2}pversion=\$pversion"
|
||||||
|
}
|
||||||
|
|
||||||
|
# mode de fonctionnement
|
||||||
|
case "$scriptname" in
|
||||||
|
ulibsync) mode=sync;;
|
||||||
|
ulibversion) mode=version;;
|
||||||
|
ulibshell) mode=shell;;
|
||||||
|
*) mode=auto;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# mode sync
|
||||||
|
destdir=
|
||||||
|
syncwhat=auto
|
||||||
|
synculib=
|
||||||
|
syncpyulib=
|
||||||
|
syncsupport=
|
||||||
|
# mode version
|
||||||
|
action=show
|
||||||
|
system=
|
||||||
|
min_version=
|
||||||
|
set_version=
|
||||||
|
inc_version=minor
|
||||||
|
# mode shell
|
||||||
|
modules=()
|
||||||
|
# options courtes partagées
|
||||||
|
u_opt=; p_opt=; s_opt=
|
||||||
|
parse_opts + "${PRETTYOPTS[@]}" \
|
||||||
|
--help '$exit_with display_help' \
|
||||||
|
-S,--sync mode=sync \
|
||||||
|
-d:,--destdir: '$mode=sync; set@ destdir' \
|
||||||
|
--ulib '$mode=sync; syncwhat=; synculib=1' \
|
||||||
|
--pyulib '$mode=sync; syncwhat=; syncpyulib=1' \
|
||||||
|
--support '$mode=sync; syncwhat=; syncsupport=1' \
|
||||||
|
-v,--version mode=version \
|
||||||
|
-l,--show '$mode=version; action=show' \
|
||||||
|
--system '$mode=version; action=show; system=1' \
|
||||||
|
-c:,--check: '$mode=version; action=check; set@ min_version' \
|
||||||
|
-V:,--set-version: '$mode=version; action=set; set@ set_version' \
|
||||||
|
--update '$mode=version; action=inc' \
|
||||||
|
-x,--major '$mode=version; action=inc; inc_version=major' \
|
||||||
|
-z,--minor '$mode=version; action=inc; inc_version=minor' \
|
||||||
|
--patchlevel '$mode=version; action=inc; inc_version=patch' \
|
||||||
|
--shell mode=shell \
|
||||||
|
-r:,--require: '$mode=shell; add@ modules' \
|
||||||
|
-u u_opt=1 \
|
||||||
|
-p p_opt=1 \
|
||||||
|
-s s_opt=1 \
|
||||||
|
@ args -- "$@" && set -- "${args[@]}" || die "$args"
|
||||||
|
|
||||||
|
case "$mode" in
|
||||||
|
auto)
|
||||||
|
mode=
|
||||||
|
if [ -n "$u_opt" ]; then
|
||||||
|
mode=version; action=inc
|
||||||
|
fi
|
||||||
|
if [ -n "$p_opt" -a -n "$u_opt" ]; then
|
||||||
|
# support de -up
|
||||||
|
mode=version; action=inc; inc_version=patch
|
||||||
|
elif [ -n "$p_opt" ]; then
|
||||||
|
die "getopt: invalid option 'p'"
|
||||||
|
fi
|
||||||
|
if [ -n "$s_opt" ]; then
|
||||||
|
mode=shell
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
[ -n "$mode" ] || mode=shell
|
||||||
|
|
||||||
|
case "$mode" in
|
||||||
|
sync)
|
||||||
|
[ -n "$u_opt" ] && { syncwhat=; synculib=1; }
|
||||||
|
[ -n "$p_opt" ] && { syncwhat=; syncpyulib=1; }
|
||||||
|
[ -n "$s_opt" ] && { syncwhat=; syncsupport=1; }
|
||||||
|
[ "$syncwhat" == auto ] && {
|
||||||
|
synculib=1
|
||||||
|
#syncpyulib=
|
||||||
|
#syncsupport=
|
||||||
|
}
|
||||||
|
|
||||||
|
[ -n "$destdir" ] || destdir="${1:-.}"
|
||||||
|
ask_yesno "Voulez-vous copier ${synculib:+
|
||||||
|
- la librairie ulib}${syncpyulib:+
|
||||||
|
- la librairie pyulib}${syncsupport:+
|
||||||
|
- scripts de support}
|
||||||
|
dans $(ppath "$destdir")?" O || die
|
||||||
|
|
||||||
|
urequire install
|
||||||
|
|
||||||
|
if [ -n "$synculib" ]; then
|
||||||
|
__ulib_install_show_args ulib "$destdir" 1
|
||||||
|
ulibsync "$destdir"
|
||||||
|
fi
|
||||||
|
if [ -n "$syncpyulib" ]; then
|
||||||
|
urequire pyulib/pyulib
|
||||||
|
__ulib_install_show_args pyulib "$destdir" 1
|
||||||
|
pyulibsync "$destdir"
|
||||||
|
fi
|
||||||
|
if [ -n "$syncsupport" ]; then
|
||||||
|
for i in .nutools-bootstrap; do
|
||||||
|
adestdir="$(abspath "$destdir")"
|
||||||
|
if [ "${adestdir%/lib}" != "$adestdir" ]; then
|
||||||
|
# cas particulier: synchro vers un répertoire lib/
|
||||||
|
# dans ce cas, copier le fichier .nutools-bootstrap dans le
|
||||||
|
# répertoire parent.
|
||||||
|
copy_update "$scriptdir/$i" "$(dirname -- "$destdir")"
|
||||||
|
else
|
||||||
|
copy_update "$scriptdir/$i" "$destdir"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
for i in lib/local-uinst lib/local-uinst.sh; do
|
||||||
|
copy_update "$scriptdir/$i" "$destdir"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
version)
|
||||||
|
[ -n "$u_opt" ] && { action=inc; }
|
||||||
|
[ -n "$p_opt" ] && { action=inc; inc_version=patch; }
|
||||||
|
[ -n "$s_opt" ] && { action=show; system=1; }
|
||||||
|
|
||||||
|
setx version formatversion 0 0 0
|
||||||
|
versionfile="$scriptdir/lib/ulib/.ulibver"
|
||||||
|
[ -f "$versionfile" ] || echo "$version" >"$versionfile"
|
||||||
|
[ -f "$versionfile" ] && version="$(<"$versionfile")"
|
||||||
|
parseversion "$(<"$versionfile")"
|
||||||
|
|
||||||
|
if [ "$action" == set -o "$action" == inc ]; then
|
||||||
|
[ -f "$scriptdir/.nutools-devel" ] ||
|
||||||
|
die "Cette installation de ulib est déjà déployé en version $pversion: impossible de la mettre à jour."
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$action" == show ]; then
|
||||||
|
echo "ulib est en version $pversion"
|
||||||
|
if [ -n "$system" ]; then
|
||||||
|
setx sversion formatversion 0 0 0
|
||||||
|
sversionfile="/etc/.ulibver"
|
||||||
|
[ -f "$sversionfile" ] && sversion="$(<"$sversionfile")"
|
||||||
|
parseversion "$(<"$versionfile")" s
|
||||||
|
echo "/etc/ulib est en version $spversion"
|
||||||
|
fi
|
||||||
|
|
||||||
|
elif [ "$action" == set ]; then
|
||||||
|
parsepversion "$set_version"
|
||||||
|
formatversion >"$versionfile"
|
||||||
|
echo "ulib est maintenant en version $pversion"
|
||||||
|
|
||||||
|
elif [ "$action" == inc ]; then
|
||||||
|
case "$inc_version" in
|
||||||
|
major) major=$(($major + 1)); minor=0; patch=0;;
|
||||||
|
minor) minor=$(($minor + 1)); patch=0;;
|
||||||
|
patch) patch=$(($patch + 1));;
|
||||||
|
esac
|
||||||
|
formatversion >"$versionfile"
|
||||||
|
parseversion "$(<"$versionfile")"
|
||||||
|
echo "ulib est maintenant en version $pversion"
|
||||||
|
|
||||||
|
elif [ "$action" == check ]; then
|
||||||
|
r=1
|
||||||
|
parsepversion "$min_version" m
|
||||||
|
[ "$version" -ge "$mversion" ] && r=0
|
||||||
|
if [ $r -eq 0 ]; then
|
||||||
|
eecho "ulib est en version $pversion >= $mpversion ${COULEUR_VERTE}[OK]${COULEUR_NORMALE}"
|
||||||
|
else
|
||||||
|
eecho "ulib est en version $pversion < $mpversion ${COULEUR_ROUGE}[KO]${COULEUR_NORMALE}"
|
||||||
|
fi
|
||||||
|
exit $r
|
||||||
|
|
||||||
|
else
|
||||||
|
die "BUG: action inconnue $action"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
shell)
|
||||||
|
[ -n "$u_opt" ] && die "getopt: invalid option 'u'"
|
||||||
|
[ -n "$p_opt" ] && die "getopt: invalid option 'p'"
|
||||||
|
[ -n "$s_opt" ] && { mode=shell; } # FYI, ici $mode vaut déjà shell
|
||||||
|
|
||||||
|
ac_set_tmpfile bashrc
|
||||||
|
echo "\
|
||||||
|
if ! grep -q '/etc/bash.bashrc' /etc/profile; then
|
||||||
|
[ -f /etc/bash.bashrc ] && source /etc/bash.bashrc
|
||||||
|
fi
|
||||||
|
if ! grep -q '~/.bashrc' ~/.bash_profile; then
|
||||||
|
[ -f ~/.bashrc ] && source ~/.bashrc
|
||||||
|
fi
|
||||||
|
[ -f /etc/profile ] && source /etc/profile
|
||||||
|
[ -f ~/.bash_profile ] && source ~/.bash_profile
|
||||||
|
if ! grep -q '$scriptdir/bashrc' ~/.bashrc; then
|
||||||
|
if [ -f '$scriptdir/bashrc' ]; then
|
||||||
|
if ! grep -q @@dest@@ '$scriptdir/bashrc'; then
|
||||||
|
# ne lire que si le répertoire est déployé
|
||||||
|
source '$scriptdir/bashrc'
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
function uprovide() { :; }
|
||||||
|
source '$scriptdir/lib/ulib/uenv'
|
||||||
|
__uenv_source_dirs '$scriptdir/lib/bashrc.d'
|
||||||
|
__uenv_cleanup
|
||||||
|
fi
|
||||||
|
if ! grep -q '$scriptdir/profile' ~/.bash_profile; then
|
||||||
|
if [ -f '$scriptdir/profile' ]; then
|
||||||
|
if grep -q @@dest@@ '$scriptdir/profile'; then
|
||||||
|
# répertoire non déployé
|
||||||
|
# la ligne suivante est copiée du fichier profile
|
||||||
|
[ -z '$USER' -a -n '$LOGNAME' ] && export USER='$LOGNAME'
|
||||||
|
else
|
||||||
|
# ne lire que si le répertoire est déployé
|
||||||
|
source '$scriptdir/profile'
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
function uprovide() { :; }
|
||||||
|
source '$scriptdir/lib/ulib/uenv'
|
||||||
|
__uenv_source_dirs '$scriptdir/lib/profile.d'
|
||||||
|
__uenv_cleanup
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Modifier le PATH. Ajouter aussi le chemin vers les uapps python
|
||||||
|
PATH=$(quoted_args "$scriptdir:$scriptdir/lib/pyulib/src/uapps:$PATH")
|
||||||
|
|
||||||
|
if [ -n '$DEFAULT_PS1' ]; then
|
||||||
|
DEFAULT_PS1=$(quoted_args "[ulibshell] $DEFAULT_PS1")
|
||||||
|
else
|
||||||
|
if [ -z '$PS1' ]; then
|
||||||
|
PS1='\\u@\\h \\w \\$ '
|
||||||
|
fi
|
||||||
|
PS1=\"[ulibshell] \$PS1\"
|
||||||
|
fi
|
||||||
|
$(quoted_args source "$scriptdir/lib/ulib/auto")" >"$bashrc"
|
||||||
|
|
||||||
|
array_fix_paths modules
|
||||||
|
if [ -n "${modules[*]}" ]; then
|
||||||
|
etitle "Chargement des modules"
|
||||||
|
for module in "${modules[@]}"; do
|
||||||
|
estep "$module"
|
||||||
|
quoted_args urequire "$module" >>"$bashrc"
|
||||||
|
done
|
||||||
|
eend
|
||||||
|
fi
|
||||||
|
|
||||||
|
estep "Lancement du sous-shell"
|
||||||
|
"$SHELL" --rcfile "$bashrc" -i -- "$@"
|
||||||
|
# note: ne pas faire exec "$SHELL", parce que sinon le fichier temporaire bashrc
|
||||||
|
# n'est pas supprimé
|
||||||
|
|
||||||
|
ac_clean "$bashrc"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
95
ulibshell
95
ulibshell
|
@ -1,95 +0,0 @@
|
||||||
#!/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: Lancer un shell après avoir chargé des modules de ulib
|
|
||||||
|
|
||||||
USAGE
|
|
||||||
$scriptname [options] [args...]
|
|
||||||
|
|
||||||
OPTIONS
|
|
||||||
-r module
|
|
||||||
Spécifier un module à charger avec urequire. Plusieurs modules peuvent
|
|
||||||
être spécifiés en les séparant par ':'
|
|
||||||
Par défaut, seul le module DEFAULTS est chargé.
|
|
||||||
|
|
||||||
Un shell est lancé dans lequel les modules spécifiés sont chargés. De plus, PATH
|
|
||||||
est modifié pour que $scriptdir soit ajouté en premier.
|
|
||||||
Les arguments sont passés inchangés au shell."
|
|
||||||
}
|
|
||||||
|
|
||||||
parse_opts + "${PRETTYOPTS[@]}" \
|
|
||||||
--help '$exit_with display_help' \
|
|
||||||
-r: modules \
|
|
||||||
@ args -- "$@" && set -- "${args[@]}" || die "$args"
|
|
||||||
|
|
||||||
ac_set_tmpfile bashrc
|
|
||||||
echo "\
|
|
||||||
if ! grep -q '/etc/bash.bashrc' /etc/profile; then
|
|
||||||
[ -f /etc/bash.bashrc ] && source /etc/bash.bashrc
|
|
||||||
fi
|
|
||||||
if ! grep -q '~/.bashrc' ~/.bash_profile; then
|
|
||||||
[ -f ~/.bashrc ] && source ~/.bashrc
|
|
||||||
fi
|
|
||||||
[ -f /etc/profile ] && source /etc/profile
|
|
||||||
[ -f ~/.bash_profile ] && source ~/.bash_profile
|
|
||||||
if ! grep -q '$scriptdir/bashrc' ~/.bashrc; then
|
|
||||||
if [ -f '$scriptdir/bashrc' ]; then
|
|
||||||
if ! grep -q @@dest@@ '$scriptdir/bashrc'; then
|
|
||||||
# ne lire que si le répertoire est déployé
|
|
||||||
source '$scriptdir/bashrc'
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
function uprovide() { :; }
|
|
||||||
source '$scriptdir/ulib/uenv'
|
|
||||||
__uenv_source_dirs '$scriptdir/lib/bashrc.d'
|
|
||||||
__uenv_cleanup
|
|
||||||
fi
|
|
||||||
if ! grep -q '$scriptdir/profile' ~/.bash_profile; then
|
|
||||||
if [ -f '$scriptdir/profile' ]; then
|
|
||||||
if grep -q @@dest@@ '$scriptdir/profile'; then
|
|
||||||
# répertoire non déployé
|
|
||||||
# la ligne suivante est copiée du fichier profile
|
|
||||||
[ -z '$USER' -a -n '$LOGNAME' ] && export USER='$LOGNAME'
|
|
||||||
else
|
|
||||||
# ne lire que si le répertoire est déployé
|
|
||||||
source '$scriptdir/profile'
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
function uprovide() { :; }
|
|
||||||
source '$scriptdir/ulib/uenv'
|
|
||||||
__uenv_source_dirs '$scriptdir/lib/profile.d'
|
|
||||||
__uenv_cleanup
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Modifier le PATH. Ajouter aussi le chemin vers les uapps python
|
|
||||||
PATH=$(quoted_args "$scriptdir:$scriptdir/pyulib/src/uapps:$PATH")
|
|
||||||
|
|
||||||
if [ -n '$DEFAULT_PS1' ]; then
|
|
||||||
DEFAULT_PS1=$(quoted_args "[ulibshell] $DEFAULT_PS1")
|
|
||||||
else
|
|
||||||
if [ -z '$PS1' ]; then
|
|
||||||
PS1='\\u@\\h \\w \\$ '
|
|
||||||
fi
|
|
||||||
PS1=\"[ulibshell] \$PS1\"
|
|
||||||
fi
|
|
||||||
$(quoted_args source "$scriptdir/ulib/auto")" >"$bashrc"
|
|
||||||
|
|
||||||
array_fix_paths modules
|
|
||||||
if [ -n "${modules[*]}" ]; then
|
|
||||||
etitle "Chargement des modules"
|
|
||||||
for module in "${modules[@]}"; do
|
|
||||||
estep "$module"
|
|
||||||
quoted_args urequire "$module" >>"$bashrc"
|
|
||||||
done
|
|
||||||
eend
|
|
||||||
fi
|
|
||||||
|
|
||||||
estep "Lancement du sous-shell"
|
|
||||||
"$SHELL" --rcfile "$bashrc" -i -- "$@"
|
|
||||||
|
|
||||||
ac_clean "$bashrc"
|
|
||||||
# note: ne pas faire exec "$SHELL", parce que sinon le fichier temporaire bashrc
|
|
||||||
# n'est pas supprimé
|
|
38
ulibsync
38
ulibsync
|
@ -1,38 +0,0 @@
|
||||||
#!/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: Copier les librairies ulib et/ou pyulib
|
|
||||||
|
|
||||||
USAGE
|
|
||||||
$scriptname [options] destdir
|
|
||||||
|
|
||||||
OPTIONS
|
|
||||||
-u
|
|
||||||
Copier ulib
|
|
||||||
-p
|
|
||||||
Copier pyulib"
|
|
||||||
}
|
|
||||||
|
|
||||||
parse_opts "${PRETTYOPTS[@]}" \
|
|
||||||
--help '$exit_with display_help' \
|
|
||||||
-u,--ulib ulib \
|
|
||||||
-p,--pyulib pyulib \
|
|
||||||
@ args -- "$@" && set -- "${args[@]}" || die "$args"
|
|
||||||
|
|
||||||
[ -z "$ulib" -a -z "$pyulib" ] && ulib=1
|
|
||||||
|
|
||||||
destdir="${1:-.}"
|
|
||||||
if [ -n "$ulib" ]; then
|
|
||||||
if ask_yesno "Voulez-vous copier les librairies ulib dans $(ppath "$destdir")?" O; then
|
|
||||||
ulib_sync "$destdir"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
if [ -n "$pyulib" ]; then
|
|
||||||
if ask_yesno "Voulez-vous copier les librairies pyulib dans $(ppath "$destdir")?" O; then
|
|
||||||
urequire nutools/pyulib
|
|
||||||
pyulib_sync "$destdir"
|
|
||||||
fi
|
|
||||||
fi
|
|
54
ulibversion
54
ulibversion
|
@ -1,54 +0,0 @@
|
||||||
#!/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: 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."
|
|
||||||
}
|
|
||||||
|
|
||||||
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