getInfo 3.21.0

This commit is contained in:
kyodev 2018-02-22 01:26:29 +01:00
parent 9456c700ed
commit eed0e23978
2 changed files with 142 additions and 100 deletions

View File

@ -1,7 +1,7 @@
#!/bin/bash
version=3.19.0
date="19/02/2018"
version=3.21.0
date="21/02/2018"
projet="simpledeb"
contact="IRC freenode.net ##sdeb ou https://framagit.org/kyodev/kyopages/issues/"
script="getInfo"
@ -414,9 +414,9 @@ f_affichage(){ # 24/01/2018
# :vide bypass le test de contenu $2, affiche 'vide', si besoin, en liste
# passage en paramètre VARIABLE et pas $variable
# un test si variable $2 est vide est fait sauf ':vide'
# un test si variable $2 contient 'nofile' (non trouvé par f_grep_file)
# un test si variable $2 contient 'nofile' (non trouvé par f_grep_file), remplacé par 'fichier non trouvé'
# f_dspl "variable" "type" "titre" "commentaire"
f_dspl(){ # 15/02/2018
f_dspl(){ # 21/02/2018
local display='' toDisplay
[ "$text" ] && echo -en "$text" >> "$file_output" # flush, avant fonction, de $text parent
@ -434,7 +434,7 @@ f_dspl(){ # 15/02/2018
[[ "$1" == "sans" && "$3$4" ]] && display+=" \n"
# traitement contenu
if [ "$toDisplay" == "nofile" ]; then # nofile renvoyé par f_grep
display+="\n* fichier $2 non trouvé \n"
display+="\n* fichier non trouvé \n\n"
elif [[ "$1" =~ :text ]]; then
display+="\n* $toDisplay \n"
else
@ -462,9 +462,9 @@ f_dspl_alrt(){ # 26/01/2018
echo -en "$display" >> "$file_output" # flush fonction
}
# $1=liste fichier(s) à grepper, [$2]: N &| nofile &| novide &| ligneVide &| date &| commentXY &| sources
# $1=liste fichier(s) à grepper, [$2]: N &| novide &| notitre &| noinexist &| ligneVide &| date &| commentXY &| sources
# si aucun fichier dans la liste, retour indication: 'nofile|vide|inexistant'
# exemple cumul option: "10 novide nofile lignevide" (espace obligatoire, pas d'autre séparateur)
# exemple cumul option: "10 novide notitre lignevide" (espace obligatoire, pas d'autre séparateur)
# /!\ protéger les chemins avec " (surtout si plusieurs chemins ou joker)
# option largeur, des chiffres AU DÉBUT!
# option 'novide', pas d'indication vide
@ -868,8 +868,8 @@ fi_bluez(){ # 09/02/2018
[ "$mod" ] || f_dspl sans "$fg_mod_motif" " " "pas de modules en mémoire parmi:"
}
fi_conf(){ # 09/02/2018
local confs toScrut=(
fi_conf(){ # 21/02/2018
local confs appArmor toScrut=(
'/etc/default/grub'
'/etc/default/grub.d/*.cfg'
# '/etc/grub.d/' # pour info
@ -892,9 +892,11 @@ fi_conf(){ # 09/02/2018
)
confs=$( f_grep_file "${toScrut[*]}" "noinexist" )
appArmor=$( aa-status 2>/dev/null )
###
f_prnt tit2 "fichiers configuration divers"
f_prnt tit2 "configuration, divers"
f_dspl cmd "$confs" "grep -Ersv '^#|^$' <fichiers désirés>"
f_dspl cmd "$appArmor" "aa-status" "statut AppArmor"
}
fi_cpu(){ # 15/02/2018
@ -933,7 +935,7 @@ fi_cpu(){ # 15/02/2018
f_dspl sans "$text_flags" # flags cpu texte
}
fi_disk(){ # 26/01/2018
fi_disk(){ # 21/02/2018
local cmd_dd_temp="" dd_temp="" exclude_df liste_df disk_df disk_df_i cmd_dfi cmd_dfh disk_lsblk fstab
local resume idResume idSwap idisk text pluriel
local alert_dd_temp alert_file_resume alert_uuidResume
@ -973,18 +975,14 @@ fi_disk(){ # 26/01/2018
resume=$( f_grep_file "/etc/initramfs-tools/conf.d/resume" "notitre" )
if [ "$resume" == "nofile" ]; then
# alert resume absent
alert_file_resume="Pas de fichier _resume_ dans /etc/initramfs-tools/conf.d/ \n"
alert_file_resume+="Ce n'est pas forcément une erreur, la plus grosse partition swap devrait être "
alert_file_resume+="choisie dans ce cas. \n"
alert_file_resume+="À investiguer si erreur au boot ou boot très long ou erreur update-initramfs. \n"
alert_file_resume+="Notes: <https://kyodev.frama.io/kyopages/debian/petits-soucis/#fichier-resume> \n"
alert_file_resume="Pas de fichier _resume_ dans /etc/initramfs-tools/conf.d/"
fi
idResume=$( grep -Evs '^[[:blank:]]*#|^$' /etc/initramfs-tools/conf.d/resume | sed -En 's/.*UUID=([0-9a-Z-]*).*$/\1/p' )
idSwap=$( grep -Ev '^[[:blank:]]*#|^$' /etc/fstab | sed -En 's/UUID=([0-9a-Z-]*).*swap.*$/\1/p' )
if [ "$idSwap" ] && [ "$idResume" ] && [ "$idSwap" != "$idResume" ]; then
alert_uuidResume+="vérifier la config resume, l'UUID ne correspond pas à celui du swap. \n"
alert_uuidResume+="id swap : $idSwap \nid resume: $idResume \n"
alert_uuidResume+="vous pouvez utiliser _RESUME=auto_ ou _RESUME=/dev/sdx_, voir supprimer ce fichier"
alert_uuidResume+="vous pouvez utiliser _RESUME=auto_ ou _RESUME=/dev/sdx_ (voire supprimer ce fichier)"
fi
[ "$fg_nb_disk" -gt 1 ] && pluriel="s" || unset pluriel
###
@ -1092,22 +1090,22 @@ fi_dmesg(){ # 26/01/2018
f_dspl_alrt "$alert_firmBug" "alert"
}
fi_efi(){ # 27/01/2018
fi_efi(){ # 21/02/2018
local efiboot text
[ $( f__which efibootmgr ) ] || return 0 # pas d'efibootmgr
efiboot=$( efibootmgr -v 2>/dev/null )
efiboot=${efiboot// / } # amélioration légère
efiboot=${efiboot//\\/\\\\} # échappement des \
[ "$?" -ne 0 ] && return 0 # si pas les droits? (man indique root, erreur?)
[ $( f__which efibootmgr ) ] || return 0 # pas d'efibootmgr
efiboot=$( efibootmgr -v 2>/dev/null ) || return 0 # pas d'efi
efiboot=${efiboot// / } # amélioration légère
efiboot=${efiboot//\\/\\\\} # échappement des \
[ "$?" -ne 0 ] && return 0 # si pas les droits? (man indique root, erreur?)
###
f_prnt tit2 "EFI boot"
f_dspl cmd "$efiboot" "efibootmgr -v" "config EFI boot"
}
# [$1=silent|xorgOnly], assigne $fe_gpu (liste des gpu), $fe_nb_gpu, fe_Xorg (peut être null)
fi_gpu(){ # 09/02/2018
local stck_xrandr xScreens toScrut confs ifile fileConfs cmd_confs cmt_confs info_config
fi_gpu(){ # 21/02/2018
local toScrut confs ifile fileConfs cmd_confs cmt_confs info_config
local cards cmd_cards prefixCmd openGl pluriel text
local stck_glxinfo glx_dvc cmd_glx_dvc stck_glxinfoOpt stck_glxinfoDri glx_dvc_temp
local cmd_openGl stck_xrandr_query resolutions cmd_resolutions cmt_resolutions providers cmd_providers
@ -1128,14 +1126,7 @@ fi_gpu(){ # 09/02/2018
# version Xorg Server
fe_Xorg=$( xdpyinfo -display $DISPLAY 2>/dev/null | grep -i 'x.*version' ) # X.Org version: 1.19.6
fe_Xorg=${fe_Xorg//:}
stck_xrandr=$( xrandr --verbose 2>/dev/null )
if [ "$wayland" ]; then # avertissements wayland
xScreens=$( grep -A1 'Screen' <<< $stck_xrandr )
[ "$( grep 'XWAYLAND' <<< $xScreens )" ] && wayland+=" Xwayland"
[ "$( grep 'XWAYLAND' <<< $xScreens )" ] && fe_Xorg+=" {Xwayland}"
fi
fe_Xorg=${fe_Xorg// version:} # X.Org 1.19.6
[ "$1" == "silent" ] && return 0
@ -1230,7 +1221,7 @@ fi_gpu(){ # 09/02/2018
cmt_resolutions="10 premières résolutions possibles"
providers=$( xrandr --listproviders 2>/dev/null ) # DRI: ok, sort 2 fournisseurs
cmd_providers="xrandr --listproviders"
current_preferred=$( grep -EA2 'current|preferred' <<< $stck_xrandr )
current_preferred=$( grep -EA2 'current|preferred' <<< $( xrandr --verbose 2>/dev/null ) )
cmd_current_preferred="xrandr --verbose | grep -EA2 'current|preferred'"
cmt_current_preferred="résolution courante et préférée"
fi
@ -1533,17 +1524,19 @@ fi_log_xorg(){ # 18/12/2017
f_dspl_alrt "$info_logs" "info"
}
fi_mem(){ # 5/12/2017
local memoire swappiness text
fi_mem(){ # 21/02/2018
local memoire swappiness swapType text
figet_mem "mem" #options possibles mem swap total notitle nocoltitle
memoire="$fg_mem \n"
figet_mem "swap" "notitle"
memoire+="$fg_mem"
swappiness=$( cat /proc/sys/vm/swappiness 2>/dev/null )
swapType=$( awk 'FNR != 1 { print $2,":", $1 }' /proc/swaps )
###
f_prnt tit2 "mémoire"
f_dspl cmd "$memoire" "free -h"
f_dspl cmd "$swapType" "awk '{ print \$2, \$1 }' /proc/swaps" "type de swap"
f_dspl cmd "$swappiness" "cat /proc/sys/vm/swappiness" "Seuil bas de RAM libre où le swap est utilisé"
}
@ -2052,7 +2045,7 @@ fi_pkg_x(){ # 1/12/2017
f_dspl var "$alert_pkg_todo" "aide souhaitée"
}
fi_reseau(){ # 19/02/2018 ( configuration )
fi_reseau(){ # 21/02/2018 ( configuration )
local ip4 gw4 ip4_p ip6 gw6 ip_a route netplan interfaces resolv iwconfig canal_wifi text pluriel
local imgr netmgrinst netmgrrun ipa adr_temp slaac slaac_mac
local alert_ifconfig alert_slaac
@ -2131,16 +2124,17 @@ fi_reseau(){ # 19/02/2018 ( configuration )
f_prnt tit2 "configuration"
f_prnt code
f_prnt l1 "ipv4"
f_prnt l2 "$ip4"
f_prnt l2 "$ip4"
f_prnt
[ "$(f__wcv "-l" "$fg_gws")" -gt 1 ] && pluriel="s" || unset pluriel
f_prnt l2 "passerelle"$pluriel": ${gw4//$'\n'/ ⊗ }"
[ "$(f__wcv "-l" "$gw4")" -gt 1 ] && pluriel="s" || unset pluriel
f_prnt l2 "passerelle"$pluriel": ${gw4//$'\n'/ ⊗ }" '[ "$gw4" ]'
f_prnt
figet_ip "-6"
f_prnt l1 "ipv6"
f_prnt l2 "$ip6"
f_prnt
f_prnt l2 "passerelles: ${gw6//$'\n'/ ⊗ }"
[ "$(f__wcv "-l" "$gw6")" -gt 1 ] && pluriel="s" || unset pluriel
f_prnt l2 "passerelle"$pluriel": ${gw6//$'\n'/ ⊗ }" '[ "$gw6" ]'
f_prnt
[ "$(f__wcv "-w" "$fg_ifn_prior")" -gt 1 ] && pluriel="s" || unset pluriel
f_prnt l1 "interface"$pluriel" sortante"$pluriel":"
@ -2152,10 +2146,10 @@ fi_reseau(){ # 19/02/2018 ( configuration )
f_prnt 1 "l'IP publique peut être connue avec: \`$DIRNAME""getInfo --ip\`"
f_prnt
# ipv6 dépréciées
f_prnt code
f_prnt l1 "ipv6 dépréciées" '[ "$fg_ip_deprec" ]'
f_prnt l2 "$fg_ip_deprec" '[ "$fg_ip_deprec" ]'
f_prnt code
f_prnt code "" '[ "$fg_ip_deprec" ]'
f_prnt l1 "ipv6 dépréciées" '[ "$fg_ip_deprec" ]'
f_prnt l2 "$fg_ip_deprec"
f_prnt code "" '[ "$fg_ip_deprec" ]'
f_prnt
# ip a & route & interface & resolv
f_dspl cmd "$ip_a" "ip address"
@ -2167,7 +2161,7 @@ fi_reseau(){ # 19/02/2018 ( configuration )
f_dspl cmd "$iwconfig" "/sbin/iwconfig 2>/dev/null" "état carte wifi"
f_dspl cmd "$canal_wifi" "/sbin/iwlist chan | grep 'Current Frequency' | grep -Eio 'channel [0-9]+'" \
"canal wifi utilisé"
f_prnt 1 "la configuration ssid utilisée peut être connue (si NetworkManager installé) avec \n \`$DIRNAME""getInfo --ssid\`"
f_prnt 1 "la configuration ssid utilisée peut être connue (si NetworkManager installé) avec \n \`$DIRNAME""getInfo --ssid\`" '[ "$iwconfig" ]'
f_prnt
# network manager
f_prnt 1 "gestionnaire de réseau" '[ "$netmgrrun" ]'
@ -2228,7 +2222,7 @@ fi_ssid(){ # 24/12/2017
rm "$file_output"
}
fi_system(){ # 13/02/2018
fi_system(){ # 20/02/2018
local mbr uname bootImage initDaemon date_install lastboot uptime uptimePure loadAverage pluriel text
local enum_batt nb_desktop serverX serverType
local alimentation alim_total
@ -2260,7 +2254,7 @@ fi_system(){ # 13/02/2018
fi
uname=$( uname -rmo )
bootImage=$( $c_awk '{print $1}{i=2; while (i <= NF) { print " ",$i; i++}}' /proc/cmdline )
initDaemon=$( ps -p1 | $c_awk 'FNR==2 {print $4}' ) #? ps -ax | $c_awk '$1==1' ou ps -p1 | $c_awk '$1==1'
initDaemon=$( ps -p1 -o comm --no-headers ) # ps -p1 | $c_awk 'FNR==2 {print $4}'
if [[ "$initDaemon" == "systemd" && $( f__which systemd ) ]]; then
initDaemon=$( systemd --version )
initDaemon=${initDaemon%%[[:space:]]\+*}
@ -2315,7 +2309,7 @@ fi_system(){ # 13/02/2018
if [ "$fe_Xorg" ]; then
serverX+="$fe_Xorg"
fi
serverType=" ${XDG_SESSION_TYPE^}" # retourne wayland ou X11
serverType=" ${XDG_SESSION_TYPE^}" # retourne Wayland ou X11
[[ "$serverType" =~ X11 ]] && serverType+=":"
[[ "$serverX" == " " && "$ENV_DISPLAY" ]] && serverX+=":no DISPLAY"
[[ "$serverX" == " " && "$ENV_SSH" ]] && serverX+=":ssh"
@ -2383,10 +2377,9 @@ fi_system(){ # 13/02/2018
[ "$fg_nb_batt" -gt "1" ] && pluriel="s" || unset pluriel
f_prnt l2 "$fg_nb_batt batterie"$pluriel" présente"$pluriel":" '[ "$fg_batt" ]'
f_prnt l3 "$enum_batt" '[ "$fg_batt" ]'
unset fe_touchpad
[ "$fe_nb_touchpad" -gt "1" ] && pluriel="s" || unset pluriel
f_prnt l2 "$fe_nb_touchpad pavé"$pluriel" tactile"$pluriel":" '[ "fe_touchpad" ]'
f_prnt l3 "$fe_touchpad" '[ "fe_touchpad" ]'
f_prnt l2 "$fe_nb_touchpad pavé"$pluriel" tactile"$pluriel":" '[ "$fe_touchpad" ]'
f_prnt l3 "$fe_touchpad" '[ "$fe_touchpad" ]'
f_prnt code
f_prnt
f_prnt 1 "$( sed -E 's/^(.*: )(.*)/\1**\2**/' <<<$fg_disk_part_fix_tot )" '[ "$fg_disk_part_fix_tot" ]'
@ -2731,7 +2724,7 @@ figet_batt(){ # 13/02/2018
}
# assigne $fg_cpu (description cpu), fg_nb_threads, $fg_cpu_arch, $fg_uarch, $fg_vendor=AMD|Intel, $fg_nb_cpu
figet_cpu(){ # 15/02/2018
figet_cpu(){ # 21/02/2018
local cpuinfo speedNom speedMax speedMin speedCpu descrCpu cpu1 cpu2 cpu3
x_cpu=1
@ -2748,16 +2741,19 @@ figet_cpu(){ # 15/02/2018
speedCpu=""
if [ "$speedMin" ]; then
speedCpu+="$speedMin/"
descrCpu+="fréq. min/"
descrCpu+="min/"
fi
if [ "$speedNom" ]; then
speedCpu+="$speedNom"
descrCpu+="nom"
descrCpu+="nom."
fi
if [[ "$speedMax" && "$speedMax" != "$speedNom" ]]; then
speedCpu+="/$speedMax"
descrCpu+="/max"
fi
if [ "$descrCpu" ]; then
descrCpu="fréq. $descrCpu"
fi
if [ "$speedCpu" ]; then
speedCpu=$( printf "%sGHz" $speedCpu )
else
@ -2772,25 +2768,25 @@ figet_cpu(){ # 15/02/2018
' <<< "$cpuinfo" )
# traitement fg_cpu
cpu1=$(
$c_awk -v "speedCpu=$speedCpu" -F ':|@' '
$c_awk -v "speedCpu=$speedCpu" -v "descrCpu=$descrCpu" -F ':|@' '
/^model name/ { gsub(/\(R\)|\(TM\)|\(r\)|\(tm\)|CPU| width/,"",$2); cpu=$2 }
/^physical id/ { if ($2+1 != nbCpu) nbCpu=$2+1 }
/cpu cores/ { procCore=sprintf("%d",$2); if (procCore>1) pllc="s" }
/siblings/ { procThread=sprintf("%d",$2); if (procThread>1) pllt="s" }
/microcode/ { sub(/^ /,"",$2); microCode=$2 }
END {
printf nbCpu " x " cpu " (" procCore "core" pllc ", " procThread "thread" pllt;
print ") {" speedCpu "} microcode:" microCode
print ") { " speedCpu " (" descrCpu ") }"
}' <<< "$cpuinfo "
)
cpu2=$(
$c_awk -v "descrCpu=$descrCpu" -F ':' '
$c_awk -F ':' '
/^vendor_id/{gsub(/ /,"");gsub(/AuthenticAMD/,"AMD");gsub(/GenuineIntel/,"Intel");vendor=$2}
/^cpu family/{family=$2}
/^model[^ ]/{model=$2}; /^stepping/{rev=$2}
/microcode/ { sub(/^ /,"",$2); microCode=$2 }
END {
code=sprintf("{0x%.2X|0x%.2X}",family,model);
print "{" descrCpu "}, " vendor" famille" family", modèle"model,code", révision" rev
print vendor" famille" family", modèle"model,code", révision" rev ", microcode:" microCode
}' <<< "$cpuinfo"
)
cpu3=$(
@ -3206,8 +3202,8 @@ figet_cpu_uarch(){ # 14/11/2017
}
# assigne $fg_de, $fg_de_panel
figet_de(){ # 15/02/2018 # thanks neofetch
local de="n/a" ps
figet_de(){ # 21/02/2018 # thanks neofetch
local de="n/a" ps_e
x_de=1
fg_de="n/a"
@ -3247,12 +3243,12 @@ figet_de(){ # 15/02/2018 # thanks neofetch
###
# panel
ps=$( ps -A )
ps_e=$( ps -e )
fg_de_panel=$( $c_awk '
#inclus lxpanel, mate-panel, gnome-panel, xfce4-panel, lxqt-panel
/(gnome-shell|kicker|plasma-desktop|plasma-netbook|lxpanel|panel|deepin-dock|ede|sugar|theshell|kicker)$|liri-shell/ { print $NF; exit }
' <<< ${ps,,} )
' <<< ${ps_e,,} )
fg_de_panel=${fg_de_panel^}
}
# $fg_nb_disk : nb disk fixe & amovible, $fg_disk_table : tableau sommaire, fg_disk_serial
@ -3375,15 +3371,14 @@ figet_distrib(){ # 14/12/2017
}
# display manager, assigne $fg_dm (liste éventuelle) ou 'n/a'
figet_dm(){ # 19/02/2018
local dm_list="cdm entranced gdm3 gdm qingy kdm ldm lightdm lxdm mdm nodm orthos sddm slim startx tint2 wdm xdm"
figet_dm(){ # 21/02/2018
local dm_list="cdm entranced gdm3 'gdm[^-3]' qingy kdm ldm lightdm lxdm mdm nodm orthos sddm slim startx tint2 wdm xdm"
local idm systemctl x11
x_dm=1
fg_dm=""
for idm in $dm_list; do
if grep -iq "$idm" <<< $(ps -e) ; then
# if [ "${ps/*"$idm"*/test}" == "test" ]; then # pb: doublon gdm/gdm3 (speed? grepless)
if grep -iqw "$idm" <<< $(ps -e) ; then
fg_dm+="${idm^} "
elif [[ -e "/var/run/${idm}.pid" || -e "/run/${idm}.pid" || -d "/var/run/$idm/" || -d "/run/$idm/" ]]; then
fg_dm+="${idm^} "
@ -3548,9 +3543,10 @@ figet_hw(){ # 26/01/2018
[ "$fg_hw" ] && fg_hw=${fg_hw::-1}
}
# $1=-4|-6, assigne $fg_ip, $fg_gws6, $fg_ifn, $fg_mac, fg_ip_deprec (ipv6)
figet_ip(){ # 09/02/2018
# $1=-4|-6, assigne $fg_ip, $fg_gws, $fg_ifn, $fg_mac, fg_ip_deprec (ipv6)
figet_ip(){ # 21/02/2018
local target ifn
unset fg_ip fg_ip_deprec fg_gws fg_ifn_prior fg_ifn fg_mac
x_ip=1
[ $( f__which ip ) ] || return 1
@ -3591,8 +3587,9 @@ figet_ip(){ # 09/02/2018
# interface sortante
if [ "$proto" == "-6" ]; then
target=$( awk '/proto ra / { print $1; exit}' <<< $( ip $proto -o route ) )
fg_ifn_prior=$( ip $proto route get $target )
fg_ifn_prior=$( ip $proto route get $target | sed -En 's/.*dev (.*) proto.*src ([0-9a-f:]+).*/\1 (\2)/p' )
if [ "$target" ]; then
fg_ifn_prior=$( ip $proto route get $target | sed -En 's/.*dev (.*) proto.*src ([0-9a-f:]+).*/\1 (\2)/p' )
fi
else
fg_ifn_prior=$( ip $proto route get 255.255.255.255 | sed -En 's/.*dev (.*) src ([0-9.]+) .*/\1 (\2)/p' )
fi
@ -3721,9 +3718,9 @@ figet_ip_pub(){ # 24/12/2017
# $1=audio|video|net|ethernet|wireless, $2 objet raw|name|module REQUIS: declare -A lspci
# $2=name: device(s) (name) -> assigne ${lspci[name]} ${lspci[nb_card]}
# $2=raw: détail lspci (-nnv) -> assigne ${lspci[card]} ${lspci[prefix_gpu]}
# $2=module: (module kernel) -> assigne ${lspci[module]} ${lspci[srch_mod]}
figet_lspci(){ # 08/02/2018
# $2=raw: détail lspci (-nnv) -> assigne ${lspci[card]} [${lspci[prefix_gpu]}]
# $2=module: (module kernel) -> assigne ${lspci[module]} ${lspci[srch_mod]} ${lspci[card]} [${lspci[prefix_gpu]}]
figet_lspci(){ # 21/02/2018
local motif field1 pci slots nb_slots pci modLspci mod_file
if [ "$1" = "audio" ]; then
@ -3737,6 +3734,7 @@ figet_lspci(){ # 08/02/2018
elif [ "$1" = "wireless" ]; then
motif="Network controller"
fi
# les devices
if [ "$2" == "name" ]; then
unset lspci[name]
@ -3775,12 +3773,13 @@ figet_lspci(){ # 08/02/2018
pci=${pci/Capabilities: <access denied>[[:cntrl:]][[:blank:]]} # suppression Capabilities: <access denied> (user)
lspci[card]+="$pci"$'\n\n' # double \n pour espace entre card
done
lspci[card]=${lspci[card]%$'\n'$'\n'} # suppression double \n final
lspci[card]=${lspci[card]%$'\n\n'} # suppression double \n final
fi
# module kernel
if [ "$2" == "module" ]; then
[ ${lspci[nb_card]} -lt 1 ] && return # pas de cards, sortie
unset lspci[module] lspci[srch_mod]
[ "${lspci[card]}" ] || return # pas de cards, sortie
# module utilisé
modLspci=$( $c_awk -F ': ' '
@ -4022,8 +4021,8 @@ figet_ucode(){ # 14/12/2017
}
# assigne $fg_wm, contient 'n/a' ou égal 'non trouvé' ou WM
figet_wm(){ # 19/02/2018 base départ neofetch
local id xprop_id wm xprop_root ps_e compositor
figet_wm(){ # 21/02/2018 base départ neofetch
local id xprop_id wm xprop_root ps_e version compositor
x_wm=1
@ -4065,6 +4064,7 @@ figet_wm(){ # 19/02/2018 base départ neofetch
elif [[ -z ${ps_e/*afterstep*/} ]]; then wm='afterstep'
elif [[ -z ${ps_e/*awesome*/} ]]; then wm='awesome'
elif [[ -z ${ps_e/*cinnamon*/} ]]; then wm='cinnamon'
elif [[ -z ${ps_e/*fvwm*/} ]]; then wm='fvwm'
elif [[ -z ${ps_e/*fvwm-crystal*/} ]]; then wm='fvwm-Crystal'
elif [[ -z ${ps_e/*pekwm*/} ]]; then wm='pekwm'
@ -4087,29 +4087,33 @@ figet_wm(){ # 19/02/2018 base départ neofetch
elif grep -q "/twm" <<< "$ps_e"; then wm='twm'
fi
fi
if [ "${wm,,}" == 'gnome shell' ]; then
version=$( gnome-shell --version )
version=${version/GNOME Shell}
wm="$wm$version"
fi
## Compositor
if [[ "$xprop_id" =~ marco_version ]]; then # Mate, ok
if [[ "$xprop_id" =~ marco_version ]]; then # mate, ok
compositor=${xprop_id/*_marco_version = } # suppression jusqu'à ...
compositor=${compositor/\"} # suppression premier"
compositor=${compositor/\"*} # suppression 2e " avec éventuels caractères suivants
compositor="Marco v$compositor"
compositor="Marco $compositor"
wm=${wm/ (marco)} # suppression (marco) dans wm
fi
if [[ "$xprop_id" =~ mutter_version ]]; then
if [[ "$xprop_id" =~ mutter_version ]]; then # gnome3 ok
compositor=${xprop_id/*_mutter_version = } # suppression jusqu'à ...
compositor=${compositor/\"} # suppression premier"
compositor=${compositor/\"*} # suppression 2e " avec éventuels caractères suivants
compositor="Mutter v$compositor"
compositor="Mutter $compositor"
fi
if [[ "$xprop_id" =~ muffin_version ]]; then # cinnamon, ok
compositor=${xprop_id/*muffin_version = } # suppression jusqu'à ...
compositor=${compositor/\"} # suppression premier"
compositor=${compositor/\"*} # suppression 2e " avec éventuels caractères suivants
compositor="Muffin v$compositor"
compositor="Muffin $compositor"
wm=${wm/ (muffin)} # suppression (muffin) dans wm
fi
if [[ "$wm" == kwin ]]; then
if [[ "$wm" == kwin ]]; then # kde ok
compositor=$( kwin --version )
compositor=${compositor/kwin } # suppression kwin, conservation n° version
fi
@ -4126,7 +4130,6 @@ figet_wm(){ # 19/02/2018 base départ neofetch
[[ "$xprop_id" =~ gnome-shell ]] && compositor+='gnome-shell'
[[ "$xprop_id" =~ grefson ]] && compositor+='grefson'
[[ "$xprop_id" =~ kmscon ]] && compositor+='kmscon'
[[ "$xprop_id" =~ kwin ]] && compositor+='kwin'
[[ "$xprop_id" =~ moblin ]] && compositor+='moblin'
[[ "$xprop_id" =~ rustland ]] && compositor+='rustland'
[[ "$xprop_id" =~ sway ]] && compositor+='sway'
@ -4139,21 +4142,28 @@ figet_wm(){ # 19/02/2018 base départ neofetch
[ "${compositor^}" == "${wm^}" ] && unset compositor
wm=${wm^} # 1er caractère en majuscule
compositor=${compositor^} # 1er caractère en majuscule
fg_wm="$wm $compositor"
fg_wm="$wm ($compositor)"
if [ -z "${fg_wm^}" ]; then
fg_wm="non trouvé"
fi
}
# aiguillage export paste
fipaste(){ # 10/11/2017
# aiguillage export paste, insertion fichier log (debug script)
fipaste(){ # 20/02/2018
f__requis "curl"
if [ "$?" -gt 0 ]; then
f__info "une fois Curl installé, inutile de relancer la détection" \
"$GREEN $DIRNAME""getInfo -p" "pour exporter le rapport existant"
return 1
fi
if [ -e "$debug_output" ]; then
echo -e "\n\n# debug script\n" >> "$file_output"
echo '```' >> "$file_output"
cat "$debug_output" >> "$file_output"
echo '```' >> "$file_output"
rm -f "$debug_output"
fi
fipaste_curl_pastery "$file_output" "$pasteDuration" "$optDebug"
# à tester fipaste_curl_markdownshare "$file_output"
}
@ -4336,7 +4346,7 @@ fscript_update(){ # 26/01/2018
rm -rf "$dirTemp/"
}
prg_init(){ # 19/02/2018
prg_init(){ # 20/02/2018
PATH='/usr/sbin:/usr/bin:/sbin:/bin'
TERM=xterm
@ -4350,10 +4360,6 @@ prg_init(){ # 19/02/2018
DIRNAME=${DIRNAME#/opt/bin} # suppression /opt/bin éventuel au début ( install )
[ "$DIRNAME" ] && DIRNAME+="/"
# aucune erreur visible, prévoir option --debug
# exec 2>/dev/null
# exec 2>"$script.log" # à tester
# test bash v4
[ "$BASH_VERSINFO" == 4 ] || f__error "bash v4 requis" "version installée: $BASH_VERSION"
@ -4423,11 +4429,12 @@ prg_1(){ # début 2/12/2017
echo -e "$ligneRapport \n" >> "$file_output"
echo -e "--- \n" >> "$file_output"
}
prg_2(){ # traitements principaux 1/02/2018
prg_2(){ # traitements principaux 20/02/2018
if [[ "$1" == all || "$1" =~ s ]]; then #systeme, matériel -cs
echo -e "# ▷ Système" >> "$file_output"
for i in fi_system fi_cpu fi_mem fi_hw fi_batt fi_gpu fi_net fi_audio fi_touchpad fi_bluez fi_usb fi_disk ; do
echo -n "•"
[ "$debugScript" == "ok" ] && echo -e "\n$i : " >&2
$i
done
fi
@ -4435,6 +4442,7 @@ prg_2(){ # traitements principaux 1/02/2018
echo -e "# ▷ Configuration" >> "$file_output"
for i in fi_efi fi_locale fi_conf fi_vrms fi_packagers ; do
echo -n "•"
[ "$debugScript" == "ok" ] && echo -e "\n$i : " >&2
$i
done
fi
@ -4442,6 +4450,7 @@ prg_2(){ # traitements principaux 1/02/2018
echo -e "# ▷ Réseau" >> "$file_output"
for i in fi_reseau fi_nm ; do
echo -n "•"
[ "$debugScript" == "ok" ] && echo -e "\n$i : " >&2
$i
done
fi
@ -4449,6 +4458,7 @@ prg_2(){ # traitements principaux 1/02/2018
echo -e "# ▷ Analyse" >> "$file_output"
for i in fi_system_analyse fi_log_xorg fi_journal ; do
echo -n "•"
[ "$debugScript" == "ok" ] && echo -e "\n$i : " >&2
$i
done
fi
@ -4457,6 +4467,10 @@ prg_2(){ # traitements principaux 1/02/2018
prg_3(){ # fin de traitements
echo -e "--- \n" >> "$file_output"
echo -e "$ligneRapport \n" >> "$file_output"
if [ "$debugScript" == "ok" ]; then
exec 2>&4 # restauration
exec 4>&- # fermeture FD4
fi
f__dialog_oui_non "non clear" "\n exporter sur le pastebin par défaut?" && fipaste
f__info "le rapport est disponible en local, fichier:$YELLOW $file_output" \
"vous pouvez le visualiser ultérieurement avec $GREEN$script -l" \
@ -4505,6 +4519,7 @@ f_affichage
user_agent="Mozilla/5.0 Firefox"
fileDev="/opt/bin/fileDev"
file_output="getInfo_rapport.md"
debug_output="/tmp/$script.log"
script_install="/opt/bin/$script"
script_logs="/var/log/sdeb_$script.log"
url_script="https://framagit.org/kyodev/kyopages/raw/master/scripts/$script"
@ -4523,6 +4538,12 @@ for j in $options; do # première passe options
--debug-paste )
optDebug="debugPaste"
;; # si debug, retour json de pastery.net
--debug )
debugScript="ok"
rm -f "$debug_output"
exec 4>&2 # sauvegarde
exec 2> "$debug_output" # redirection
;; # enregistrement stderr dans $script.log
-t* )
pasteDuration="$(sed -En 's/-t([0-9]+)/\1/p' <<< $j)"
;; # durée de conservation standard du paste en jours
@ -4535,7 +4556,7 @@ for j in $options; do # première passe options
;;&
esac
done
options="$(sed -E 's/--debug-paste//g; s/-t[0-9]+//g' <<< $options | xargs)" # nettoyage options
options="$(sed -E 's/--debug-paste//g; s/-t[0-9]+//g; s/--debug//g' <<< $options | xargs)" # nettoyage options
[ "$options" ] || options="all"
@ -4558,7 +4579,8 @@ for j in $options; do # deuxième passe options, actions
# fi_system_analyse fi_log_xorg fi_journal
# fi_bluez # long
fi_system
echo; f_prnt_md "$file_output"
echo
f_prnt_md "$file_output"
;; # test
-c* | all )
[ "$j" == "-c" ] && exec $0 "menu"

View File

@ -1,13 +1,33 @@
# changelog getInfo
## getInfo 3.21.0 21/02/2018
* test complet avec ubuntu 17.10: ok
* plus: fi_conf, AppArmor
* plus: fi_mem, type de swap
* révision: affichage fi_gpu
* révision: figet_dm, extraction gdm3 / gdm
* révision: figet_wm, gnome3/ubuntu 17.10
* révision: fi_efi, aucun affichage si mbr
* fix: mineur, figet_ip & fi_reseau quand ipv6 ou ipv4 absent
* fix: figet_lspci, condition slot absent
* fix: mineur, f_dspl, affiche fichier nofile
## getInfo 3.20.0 20/02/2018
* nouveau: option --debug log erreur de script, exporté avec rapport principal
* révision: figet_wm
* révision: figet_cpu, affichage virtualbox
* fix: fi_system, affichage touchpad=0, méthode extraction init
## getInfo 3.19.0 19/02/2018
* plus: fi_pkg_apt, paquets épinglés par pinning, résultat effectif
* révision: général, ps -ef
* révision: fi_reseau, manager de réseau
* révision: mineur, figet_cpu, affichage nom cpu
* révision: figet_compositor, figet_wm
* révision: figet_wm
* fix: f_dspl, affichage si vide
* fix: fi_touchpad, qte numérique sur zéro touchpad