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 __fix_sysinfos_downward
} }
function dump_sysinfos_desc() { function dump_sysinfos() {
# Afficher les valeurs de SYSNAME, SYSDIST, SYSVER qui décrivent le système # Afficher les valeurs de SYSNAME, SYSDIST, SYSVER qui décrivent le système
# actuel # actuel
local sysname_="${1:-MYSYSNAME}[*]" local sysname_="${1:-MYSYSNAME}[*]"
local sysdist_="${2:-MYSYSDIST}[*]" local sysdist_="${2:-MYSYSDIST}[*]"
local sysver_="${3:-MYSYSVER}[*]" local sysver_="${3:-MYSYSVER}[*]"
echo "\ echo "\
sysname: ${!sysname_} sysname=(${!sysname_})
sysdist: ${!sysdist_} sysdist=(${!sysdist_})
sysver: ${!sysver_}" sysver=(${!sysver_})
bits=$MYBITS"
} }
function get_sysinfos_desc() { function get_sysinfos_desc() {
@ -507,6 +508,32 @@ function check_sysinfos() {
return $r_ 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 # fonctions de support pour tester certaines versions de debian
# utilisation: # utilisation:
# on_debian # on_debian

View File

@ -20,9 +20,5 @@ Sinon, afficher les informations sur le système courant."
if [ -n "$*" ]; then if [ -n "$*" ]; then
check_sysinfos "$@" check_sysinfos "$@"
else else
echo "\ dump_sysinfos
sysname=(${MYSYSNAME[*]})
sysdist=(${MYSYSDIST[*]})
sysver=(${MYSYSVER[*]})
bits=$MYBITS"
fi fi