From 67f29ddea4250bc869d51cafe411af5cf688148c Mon Sep 17 00:00:00 2001 From: Jephte Clain Date: Fri, 10 Feb 2017 15:26:41 +0400 Subject: [PATCH] =?UTF-8?q?ulib/sysinfos:=20impl=C3=A9menter=20dump=5Fsysi?= =?UTF-8?q?nfos,=20unsupported=5Fsystem,=20require=5Fsysinfos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/ulib/sysinfos | 35 +++++++++++++++++++++++++++++++---- usysinfos | 6 +----- 2 files changed, 32 insertions(+), 9 deletions(-) diff --git a/lib/ulib/sysinfos b/lib/ulib/sysinfos index 5cac9c8..c19c746 100644 --- a/lib/ulib/sysinfos +++ b/lib/ulib/sysinfos @@ -331,16 +331,17 @@ function ensure_sysinfos() { __fix_sysinfos_downward } -function dump_sysinfos_desc() { +function dump_sysinfos() { # Afficher les valeurs de SYSNAME, SYSDIST, SYSVER qui décrivent le système # actuel local sysname_="${1:-MYSYSNAME}[*]" local sysdist_="${2:-MYSYSDIST}[*]" local sysver_="${3:-MYSYSVER}[*]" echo "\ -sysname: ${!sysname_} -sysdist: ${!sysdist_} -sysver: ${!sysver_}" +sysname=(${!sysname_}) +sysdist=(${!sysdist_}) +sysver=(${!sysver_}) +bits=$MYBITS" } function get_sysinfos_desc() { @@ -507,6 +508,32 @@ function check_sysinfos() { return $r_ } +function unsupported_system() { + # Afficher un message d'erreur indiquant que le système actuel n'est pas + # supporté, et quitter le script + 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: $*" + die "$msg" +} + +function require_sysinfos() { + # Vérifier le système actuel avec check_sysinfos(), et afficher un message + # d'erreur avec unsupported_system() s'il ne correspond pas à la requête + check_sysinfos "$@" && return 0 + # Construire une description du type de système attendu en fonction des + # arguments. Actuellement, on se contente de copier la ligne de commande, en + # sautant les options. + # XXX améliorer l'algorithme pour décrire précisément le système attendu + local -a infos; local info + for info in "$@"; do + if ! [[ "$info" == -* ]]; then + infos=("${infos[@]}" "$info") + fi + done + unsupported_system "${infos[@]}" +} + # fonctions de support pour tester certaines versions de debian # utilisation: # on_debian diff --git a/usysinfos b/usysinfos index 740605a..e9a36cf 100755 --- a/usysinfos +++ b/usysinfos @@ -20,9 +20,5 @@ Sinon, afficher les informations sur le système courant." if [ -n "$*" ]; then check_sysinfos "$@" else - echo "\ -sysname=(${MYSYSNAME[*]}) -sysdist=(${MYSYSDIST[*]}) -sysver=(${MYSYSVER[*]}) -bits=$MYBITS" + dump_sysinfos fi