ulib/sysinfos: implémenter dump_sysinfos, unsupported_system, require_sysinfos

This commit is contained in:
Jephté Clain 2017-02-10 15:26:41 +04:00
parent a8fa7227b8
commit 67f29ddea4
2 changed files with 32 additions and 9 deletions

View File

@ -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

View File

@ -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