diff --git a/inxi b/inxi index 79c47aa..8e6e27c 100755 --- a/inxi +++ b/inxi @@ -1,7 +1,7 @@ #!/bin/bash ######################################################################## #### Script Name: inxi -#### version: 1.0.87-b1 +#### version: 1.0.88-b1 #### Date: 26 July 2009 ######################################################################## #### SPECIAL THANKS @@ -3013,12 +3013,16 @@ get_sensors_data() IFS="," if [[ $B_SENSORS == 'true' ]];then + # note: non-configured sensors gives error message, which we need to redirect to stdout A_SENSORS_DATA=( $( sensors | gawk ' BEGIN { IGNORECASE=1 moboTemp="" cpuTemp="" cpuFan="" + sysFan1="" + sysFan2="" + sysFan3="" tempData1="" tempData2="" } @@ -3056,23 +3060,26 @@ get_sensors_data() cpuTemp=cpuTemp "°" tempData2 } } - /CPU Fan|fan1:/ { - if ( $1 == "fan1:" ) { - tempData1=$2 - } - else { - tempData1=$3 - } - cpuFan=tempData1 + /CPU Fan:/ { + cpuFan=$3 + } + /fan1:/ { + sysFan1=$2 + } + /fan2:/ { + sysFan2=$2 + } + /fan3:/ { + sysFan3=$2 } END { # if they are ALL null, print error message - if ( moboTemp == "" && cpuTemp == "" && cpuFan == "" ) { + if ( moboTemp == "" && cpuTemp == "" && cpuFan == "" && sysFan1 == "" && sysFan2 == "" && sysFan3 == "" ) { print "No active sensors found. Have you configured your sensors yet?" } else { - print moboTemp "," cpuTemp "," cpuFan + print moboTemp "," cpuTemp "," cpuFan "," sysFan1 "," sysFan2 "," sysFan3 } } ' @@ -3942,7 +3949,7 @@ print_partition_data() print_sensors_data() { eval $LOGFS - local mobo_temp='' cpu_temp='' cpu_fan='' sensors_data='' + local mobo_temp='' cpu_temp='' cpu_fan='' sys_fan1='' sys_fan2='' sys_fan3='' sensors_data='' get_sensors_data # initial error cases, for missing app or unconfigured sensors @@ -3963,14 +3970,28 @@ print_sensors_data() fi cpu_temp="${C1}Cpu Temp:${C2} $cpu_temp " + # we need to make sure it's either cpu fan OR cpu fan and sys fan 1 if [[ -n ${A_SENSORS_DATA[2]} ]];then - cpu_fan="${A_SENSORS_DATA[2]}rpm " + cpu_fan="${A_SENSORS_DATA[2]}rpm" + elif [[ -z ${A_SENSORS_DATA[2]} && -n ${A_SENSORS_DATA[3]} ]];then + cpu_fan="${A_SENSORS_DATA[3]}rpm" else cpu_fan='N/A' fi cpu_fan="${C1}Cpu Fan:${C2} $cpu_fan " + # then set the sys fans, if present or 0. sys fan 1 only if cpu fan is present, + # otherwise fan1: is cpu fan + if [[ -n ${A_SENSORS_DATA[2]} && -n ${A_SENSORS_DATA[3]} ]];then + sys_fan1="${C1}Sys Fan1:${C2} ${A_SENSORS_DATA[3]}rpm " + fi + if [[ -n ${A_SENSORS_DATA[4]} ]];then + sys_fan2="${C1}Sys Fan2:${C2} ${A_SENSORS_DATA[4]}rpm " + fi + if [[ -n ${A_SENSORS_DATA[5]} ]];then + sys_fan3="${C1}Sys Fan3:${C2} ${A_SENSORS_DATA[5]}rpm " + fi fi - sensors_data="$mobo_temp$cpu_temp$cpu_fan" + sensors_data="$mobo_temp$cpu_temp$cpu_fan$sys_fan1$sys_fan2$sys_fan3" sensors_data=$( create_print_line "Sensors:" "$sensors_data" ) print_screen_output "$sensors_data" eval $LOGFE