diff --git a/lib/ulib/debian b/lib/ulib/debian index c53d020..32a7ad7 100644 --- a/lib/ulib/debian +++ b/lib/ulib/debian @@ -60,6 +60,17 @@ function pkg_check_install() { pkg_installm "$@" } +function require_pkgs() { + # installer les packages spécifiés silencieusement et sans confirmation. + # si les packages n'existent pas ou ne peuvent pas être installé, c'est une + # erreur fatale. + if ! pkg_check "$@"; then + # essayer d'installer les packages + enote "Installation de packages $*" + pkg_install "$@" || die + fi +} + ################################################################################ # Gestion des services diff --git a/lib/ulib/sysinfos b/lib/ulib/sysinfos index 1b7c707..fd6f519 100644 --- a/lib/ulib/sysinfos +++ b/lib/ulib/sysinfos @@ -611,3 +611,28 @@ function on_default() { #XXX ici, on peut ajouter le code de support pour d'autres systèmes return 1 } + +################################################################################ +# Support uinst + +function require_debian() { + set -- -d debian "$@" + if check_sysinfos "$@"; then + urequire debian + return 0 + fi + local -a infos; local info + for info in "$@"; do + if ! [[ "$info" == -* ]]; then + infos=("${infos[@]}" "$info") + fi + done + local msg="Ce script n'est pas supporté sur $(get_sysinfos_desc)" + [ -n "$*" ] && msg="$msg +Il faut au moins l'un des systèmes suivants: ${infos[*]}" + [ -n "$UINST" -a -n "$ABORT" ] && touch "$ABORT" + die "$msg" +} +function require_stretch() { + require_debian -v stretch+ +}