fonctions pour faciliter la gestion des dépendances sous debian

This commit is contained in:
Jephté Clain 2016-04-05 12:23:10 +04:00
parent 2c27f03ba0
commit 1864cdf4dd
2 changed files with 75 additions and 0 deletions

View File

@ -50,6 +50,15 @@ function pkg_installm() {
fi
}
function pkg_check_install() {
# Si le programme $1 n'existe pas, alors installer les packages $2..$@
# S'il n'y a pas d'arguments $2..$@ utiliser $1 comme nom de package
# Retourner 0 si au moins un des packages a été installé
progexists "$1" && return 1
[ $# -gt 1 ] && shift
pkg_installm "$@"
}
################################################################################
# Gestion des services

View File

@ -479,3 +479,69 @@ function check_sysinfos() {
done
return $r_
}
# fonctions de support pour tester certaines versions de debian
# utilisation:
# on_debian
# if on_jessie; then
# elif on_wheezy; then
# elif on_squeeze; then
# else
# fi
# OU:
# on_debian:
# on_jessie xxx
# on_wheezy yyy
# on_squeeze zzz
# on_default ttt
# Sans arguments, on_{jessie,wheezy,squeeze} teste si on sur la version demandée
# OU SUPERIEURE. Avec un argument, la version EXACTE est testée, et la commande
# est lancée en cas de correspondance
function on_debian() {
NUTOOLS_ON_DEBIAN=
if check_sysinfos -d debian; then
urequire debian
NUTOOLS_ON_DEBIAN=1
return 0
else
return 1
fi
}
function on_debian:() { on_debian "$@"; }
function __on_debian() {
[ -z "$NUTOOLS_ON_DEBIAN" -o "$NUTOOLS_ON_DEBIAN" != 1 ] && return 1
local sysver="$1"; shift
if [ $# -gt 0 ]; then
if check_sysinfos -d debian -v "$sysver"; then
NUTOOLS_ON_DEBIAN="$sysver"
"$@"
return 0
else
return 1
fi
else
if check_sysinfos -d debian -v "$sysver+"; then
NUTOOLS_ON_DEBIAN="$sysver"
return 0
fi
fi
}
function on_stretch() { __on_debian stretch "$@"; }
function on_jessie() { __on_debian jessie "$@"; }
function on_wheezy() { __on_debian wheezy "$@"; }
function on_squeeze() { __on_debian squeeze "$@"; }
function on_default() {
if [ "$NUTOOLS_ON_DEBIAN" == 1 ]; then
if [ $# -gt 0 ]; then
"$@"
return 0
else
return 0
fi
elif [ -n "$NUTOOLS_ON_DEBIAN" ]; then
return 1
fi
#XXX ici, on peut ajouter le code de support pour d'autres systèmes
return 1
}