diff --git a/scripts/getInfo b/scripts/getInfo index 0e2a483..cfbfe47 100755 --- a/scripts/getInfo +++ b/scripts/getInfo @@ -1,6 +1,6 @@ #!/bin/bash -version=2.65.0 +version=2.66.0 date="14/12/2017" projet="simpledeb" contact="IRC freenode ##sdeb ou https://framagit.org/kyodev/kyopages/issues/" @@ -189,7 +189,7 @@ f__sudo(){ # 4/12/2017 done } - # conversion human, source ko, $1=nombre à convertir, affiche ko ou Mo ou Go, ! dépendance gawk + # $1=nombre à convertir en ko, affiche ko ou Mo ou Go, ! dépendance gawk f__unit_human(){ # 5/12/2017 echo -n "$( gawk ' { if ( $1<1024 ) {unit="ko"; printf "%d%s", $1, unit; exit} @@ -253,7 +253,7 @@ f__wcv(){ # 09/11/2017 [ "$1" == "-wv" ] && echo "$2" | grep -o "$3" | grep -c . } - # test wget, $1=url à tester, sortie du script (même si url testée ok) avec affichage erreur ou ok + # $1=url à tester, sortie du script (même si url testée ok) avec affichage erreur ou ok # si $2=print affiche url testée & entêtes http & location, return 0 # si $2=loc affiche seulement location, return 0 # si $2=test return 0 si ok, return 1 si KO @@ -330,7 +330,7 @@ f_affichage(){ # 2/12/2017 echo -e "$BLUE$affichage_text\n$YELLOW version $version - $date$STD\n" } - # $1 type de titre var|cmd|sans|+:text|+:vide, $2 variable à afficher [$3 titre] [$4 commentaire] + # $1=type de titre var|cmd|sans|+:text|+:vide, $2 variable à afficher [$3 titre] [$4 commentaire] # $1: cmd->`titre`, var->**titre**, sans: pas de titre # :text ajouté, affiche le text en liste (avec puce) # :vide bypass le test de contenu $2, affiche 'vide', si besoin, en liste @@ -367,7 +367,7 @@ f_dspl(){ # 14/12/2017 echo -en "$display" >> "$fileOutput" } - # $1 variable à afficher en alerte/info, [$2 alert|info] type de message, alert par défaut + # $1=variable à afficher en alerte/info, [$2 alert|info] type de message, alert par défaut # un test si variable $1 est vide ou non est fait f_dspl_alrt(){ # 14/12/2017 [ "$1" ] || return 0 # test si contenu dans $1 @@ -384,6 +384,30 @@ f_dspl_alrt(){ # 14/12/2017 echo -en "$display" >> "$fileOutput" # flush fonction } + # $1=texte à épurer +f_epure_marque(){ # 14/12/2017 + local text="$1" + + text=${text/System Controller Hub } + text=${text/Advanced Micro Devices, Inc. } + text=${text/Semiconductor Co., Ltd. } + text=${text//Corporation } + text=${text/Series Family /Series } + text=${text/Series Chipset Family /Series } + text=${text/High Definition /HD } + text=${text// Computer} + text=${text// COMPUTER} + text=${text// Limited} + text=${text//, Inc.} + text=${text// Inc.} + text=${text// INC.} + text=${text// Corp.} + text=${text// Co.} + text=${text// Ltd.} + text=${text// Adapter} + echo "$text" +} + # $1=liste fichier(s) à grepper, [$2]: N &| nofile &| novide &| ligneVide &| date &| commentXY &| sources # si aucun fichier dans la liste retour: 'nofile|vide|inexistant' # /!\ protéger les chemins avec " (surtout si plusieurs chemins ou joker) @@ -537,7 +561,7 @@ f_prnt(){ # 11/12/2017 fi } - # conversion markdown pour affichage en console, $1 file à parser, [$2=marge] margin left 2 espaces + # $1=file à parser, [$2=marge] margin left 2 espaces # tout en bash regex par défaut non-greedy (non gourmand) comme sed ou gawk # contrainte markdown: # l'italique avec _ ou * n'est pas géré, trop d'interférences potentielles @@ -775,6 +799,7 @@ fi_cpu(){ # 14/12/2017 [ "$ENV_DEBIAN" ] && alert_microcode+="\n les installer: **apt install $ucode**" fi [ "$(( ${fg_cpu:0:1} ))" -gt 1 ] && pluriel="s" || unset pluriel + unset CPU_FLAGS x_cpu_flags ### f_prnt titre2 "processeur"$pluriel f_dspl cmd "$fg_cpu" "lscpu" # affichage proc @@ -1403,6 +1428,8 @@ fi_net(){ # 14/12/2017 ( matériel ) x_net=1 # devices fe_cards_reseau=$( figet_lspci "net" "name" ) # noms des cartes réseau détectées, mix ethernet/wifi + fe_cards_reseau=${fe_cards_reseau/Network controller/Network controller} + fe_cards_reseau=${fe_cards_reseau/Wireless Network/Wireless} fe_nb_reseau=$(f__wcv -l "$fe_cards_reseau") # nombre de cartes réseau détectées, mix ethernet/wifi [ "$1" == "silent" ] && return [ "$fe_nb_reseau" -eq 0 ] && return 0 # pas de cartes réseau, rien à voir (en attendant usb ou autre) @@ -2305,16 +2332,65 @@ fi_touchpad(){ # 14/12/2017 f_dspl_alrt "$info_driver" "info" } -fi_usb(){ # 1/12/2017 - local lsusb lsusb_t text +fi_usb(){ # 14/12/2017 + local lsusb size lsusb_t ls lst ils test result ls_p + x_usb=1 lsusb=$( lsusb ) - lsusb_t=$( lsusb -t ) [ "$lsusb" ] || return 0 + lsusb=$( sort <<< "$lsusb" ) + lsusb=$( f_epure_marque "$lsusb" ) # cosmétique + # largeur initiale de lsusb + size=$(( $( gawk '{ if ( length($0) > size ) size = length($0); } END {print size }' <<< $lsusb ) )) + lsusb_t=$( lsusb -t ) + # formation index bus-device + ls=$( gawk ' + BEGIN {FS=": "} + { + split($1,tab," ") + bus=sprintf("%d",tab[2]) + device=sprintf("%d",tab[4]) + objet=$2 + print bus "-" device " : " $1 " " objet + } + ' <<< $lsusb ) + # extraction Class Driver et formation index bus-device + lst=$( gawk ' + BEGIN {FS=", "} + { + sub(/^.*Bus /,"",$1) + sub(/Human Interface Device/,"HID") + split($1,tab,".Port [0-9]+: Dev ") + if ( tab[1] ~ /[0-9]+/ ) bus=sprintf("%d",tab[1]); else bus=bus + device=tab[2] + if ( $2 ~ /If/) { + sub(/Class=/,"",$3) + class=$3 + sub(/.*Driver=/,"",$4) + driver=$4 + } else { + sub(/Class=/,"",$2) + class=$2 + sub(/.*Driver=/,"",$3) + driver=$3 + } + printf( "%s-%s | ⇉ Class: %-15s Driver: %s\n",bus,device,class,driver ) + } + ' <<< $lsusb_t ) + # assemblage et suppression index bus-device + IFS=$'\n' + for ils in $ls; do + test=${ils% :*} + result=$( grep -w -m1 "$test" <<< "$lst" ) + result=${result#* | } + ils=${ils#* : } + ls_p+=$( printf "%-"$size"s %s" $ils $result)$'\n' + done + ls_p=${ls_p%[[:cntrl:]]} + IFS="$IFS_INI" ### f_prnt titre2 "USB" - f_dspl cmd "$lsusb" "lsusb" - f_dspl cmd "$lsusb_t" "lsusb -t" + f_dspl cmd "$ls_p" "lsusb" "commande modifiée, ajout Class & Driver" } fi_vrms(){ # 1/12/2017 @@ -2528,7 +2604,7 @@ figet_cpu(){ #v 14/12/2017 } # stockage des flags cpu extraits du kernel, assigna $CPU_FLAGS -figet_cpu_flags(){ # 24/11/2017 +figet_cpu_flags(){ # 14/12/2017 x_cpu_flags=1 CPU_FLAGS=" @@ -3193,10 +3269,8 @@ figet_dmi(){ #v2 14/12/2017 [ "$product" ] && fg_dmi="$product "$'\n' [[ "$board" && "$indic1" != "$indic2" ]] && fg_dmi+="$board "$'\n' [ "$bios" ] && fg_dmi+="$bios " - fg_dmi=${fg_dmi//Inc. } - fg_dmi=${fg_dmi//INC. } - fg_dmi=${fg_dmi//Computer } - fg_dmi=${fg_dmi//COMPUTER } + fg_dmi=$( f_epure_marque "$fg_dmi" ) + unset chassis_type } # infos température et fan via acpi, assigne $fg_hw @@ -3446,23 +3520,10 @@ figet_lspci(){ # 14/12/2017 # uniquement les devices if [ "$2" == "name" ]; then while read -r field1 lspci; do - lspci=${lspci#*: } # suppression début, jusqu"à': ' - lspci=${lspci% (rev*} # suppression à la fin, '(rev..' - lspci=${lspci/System Controller Hub } # suppression 'System Controller Hub ' - lspci=${lspci/Advanced Micro Devices, Inc. } # suppression 'Advanced Micro Devices, Inc. ' - lspci=${lspci/Semiconductor Co., Ltd. } # suppression 'Semiconductor Co., Ltd. ' - lspci=${lspci/Corporation } # suppression 'Corporation ' - lspci=${lspci/Limited } # suppression 'Limited ' - lspci=${lspci/Inc. } # suppression 'Inc. ' - lspci=${lspci/Co. } # suppression 'Co. ' - lspci=${lspci/Ltd. } # suppression 'Ltd. ' - lspci=${lspci// } # suppression ' ' - lspci=${lspci/Series Family /Series } - lspci=${lspci/Series Chipset Family /Series } - lspci=${lspci/High Definition /HD } + lspci=${lspci%(rev *)} display+="$lspci "$'\n' done <<< $( lspci | grep -Ei "$motif" ) - + display=$( f_epure_marque "$display" ) # lspci détaillé RAW || MODULE elif [[ "$2" == "raw" || "$2" == "module" ]]; then slots=$( lspci | grep -Ei "$motif" | cut -d" " -f1 ) @@ -3809,7 +3870,7 @@ fipaste(){ # 10/11/2017 # à tester fipaste_curl_markdownshare "$fileOutput" } - # $1 fichier à exporter, $2 durée de conservation en jour; $3 debug + # $1=fichier à exporter, $2 durée de conservation en jour; $3 debug fipaste_curl_pastery(){ # 25/10/2017 [ -e "$1" ] || f__error "fichier $1 inexistant" local curl id pluriel @@ -4183,7 +4244,7 @@ for j in $options; do ORIGIN='test' prg_1 "$*" echo -n "•" - fi_system + fi_usb echo; f_prnt_md "$fileOutput" exit ;; # test -c* | all ) diff --git a/scripts/getInfo_changelog.md b/scripts/getInfo_changelog.md index a57bcc1..21d0605 100644 --- a/scripts/getInfo_changelog.md +++ b/scripts/getInfo_changelog.md @@ -2,6 +2,11 @@ f__architecture +## getInfo 2.66.0 14/12/2017 + +* nouveau: fi_usb, assemblage lsusb & lsusb -t +* nouveau: f_epure_marque, donc révision figet_dmi, figet_lspci + ## getInfo 2.65.0 14/12/2017 * nouveau: fi_touchpad