spring cleaning. Added as -x option for graphics card, busID output, that's useful.

Moved the output error messaging to the print gfx function where it should be.

I'll do that whereever the error messages were put in the get data functions, it' better to return null
and let the print function decide what message to give users, that way we can always test for null values
on anything we get from get data functions.

I'll fix these as I spot them.
This commit is contained in:
inxi-svn 2011-04-25 20:00:53 +00:00
parent 84267ea1a3
commit 799b95543b

62
inxi
View file

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
######################################################################## ########################################################################
#### Script Name: inxi #### Script Name: inxi
#### version: 1.4.81 #### version: 1.4.82
#### Date: April 25 2011 #### Date: April 25 2011
######################################################################## ########################################################################
#### SPECIAL THANKS #### SPECIAL THANKS
@ -2384,23 +2384,21 @@ get_graphics_card_data()
A_GFX_CARD_DATA=( $( echo "$Lspci_Data" | gawk -F': ' ' A_GFX_CARD_DATA=( $( echo "$Lspci_Data" | gawk -F': ' '
BEGIN { BEGIN {
IGNORECASE=1 IGNORECASE=1
nic=""
} }
/vga compatible controller/ { /vga compatible controller/ {
gsub(/'"$BAN_LIST_NORMAL"'/, "", $NF) gsub(/'"$BAN_LIST_NORMAL"'/, "", $NF)
gsub(/,/, " ", $NF) gsub(/,/, " ", $NF)
gsub(/^ +| +$/, "", $NF) gsub(/^ +| +$/, "", $NF)
gsub(/ [ \t]+/, " ", $NF) gsub(/ [ \t]+/, " ", $NF)
print $NF nic=gensub(/^([0-9a-f:\.]+) (.+)$/,"\\1","",$1)
print $NF "," nic
}' ) ) }' ) )
IFS="$ORIGINAL_IFS" IFS="$ORIGINAL_IFS"
# for (( i=0; i < ${#A_GFX_CARD_DATA[@]}; i++ )) # for (( i=0; i < ${#A_GFX_CARD_DATA[@]}; i++ ))
# do # do
# A_GFX_CARD_DATA[i]=$( sanitize_characters BAN_LIST_NORMAL "${A_GFX_CARD_DATA[i]}" ) # A_GFX_CARD_DATA[i]=$( sanitize_characters BAN_LIST_NORMAL "${A_GFX_CARD_DATA[i]}" )
# done # done
# handle cases where card detection fails, like in PS3, where lspci gives no output, or headless boxes..
if [[ ${#A_GFX_CARD_DATA[@]} -eq 0 ]];then
A_GFX_CARD_DATA[0]='Failed to Detect Video Card!'
fi
# GFXMEM is UNUSED at the moment, because it shows AGP aperture size, which is not necessarily equal to GFX memory.. # GFXMEM is UNUSED at the moment, because it shows AGP aperture size, which is not necessarily equal to GFX memory..
# GFXMEM="size=[$(echo "$Lspci_Data" | gawk '/VGA/{while (!/^$/) {getline;if (/size=[0-9][0-9]*M/) {size2=gensub(/.*\[size=([0-9]+)M\].*/,"\\1","g",$0);if (size<size2){size=size2}}}}END{print size2}')M]" # GFXMEM="size=[$(echo "$Lspci_Data" | gawk '/VGA/{while (!/^$/) {getline;if (/size=[0-9][0-9]*M/) {size2=gensub(/.*\[size=([0-9]+)M\].*/,"\\1","g",$0);if (size<size2){size=size2}}}}END{print size2}')M]"
@ -4382,7 +4380,7 @@ print_audio_data()
fi fi
# if [[ -n ${a_audio_working[2]} ]];then # if [[ -n ${a_audio_working[2]} ]];then
# port_data=" ${C1}at port${C2} ${a_audio_working[2]}" # port_data=" ${C1}port${C2} ${a_audio_working[2]}"
# fi # fi
# this should only trigger if the $FILE_ASOUND_DEVICE data is used, not lspci -nn # this should only trigger if the $FILE_ASOUND_DEVICE data is used, not lspci -nn
if [[ -n ${a_audio_working[3]} && $B_EXTRA_DATA == 'true' ]];then if [[ -n ${a_audio_working[3]} && $B_EXTRA_DATA == 'true' ]];then
@ -4399,10 +4397,10 @@ print_audio_data()
if [[ $( wc -w <<< ${a_audio_working[2]} ) -gt 1 ]];then if [[ $( wc -w <<< ${a_audio_working[2]} ) -gt 1 ]];then
port_plural='s' port_plural='s'
fi fi
port_data=" ${C1}at port$port_plural${C2} ${a_audio_working[2]}" port_data=" ${C1}port$port_plural${C2} ${a_audio_working[2]}"
fi fi
if [[ -n ${a_audio_working[4]} && $B_EXTRA_DATA == 'true' ]];then if [[ -n ${a_audio_working[4]} && $B_EXTRA_DATA == 'true' ]];then
pci_bus_id=" ${C1}BusID:${C2} ${a_audio_working[4]}" pci_bus_id=" ${C1}busID:${C2} ${a_audio_working[4]}"
fi fi
audio_data="${C1}$card_one${C2} ${a_audio_working[0]}$alsa_driver$port_data$pci_bus_id" audio_data="${C1}$card_one${C2} ${a_audio_working[0]}$alsa_driver$port_data$pci_bus_id"
audio_data=$( create_print_line "Audio:" "$audio_data" ) audio_data=$( create_print_line "Audio:" "$audio_data" )
@ -4431,10 +4429,10 @@ print_audio_data()
if [[ $( wc -w <<< ${a_audio_working[2]} ) -gt 1 ]];then if [[ $( wc -w <<< ${a_audio_working[2]} ) -gt 1 ]];then
port_plural='s' port_plural='s'
fi fi
port_data=" ${C1}at port$port_plural${C2} ${a_audio_working[2]}" port_data=" ${C1}port$port_plural${C2} ${a_audio_working[2]}"
fi fi
if [[ -n ${a_audio_working[4]} && $B_EXTRA_DATA == 'true' ]];then if [[ -n ${a_audio_working[4]} && $B_EXTRA_DATA == 'true' ]];then
pci_bus_id=" ${C1}BusID:${C2} ${a_audio_working[4]}" pci_bus_id=" ${C1}busID:${C2} ${a_audio_working[4]}"
fi fi
if [[ -n ${a_audio_working[0]} ]];then if [[ -n ${a_audio_working[0]} ]];then
audio_data="${C1}Card-$(( $i + 1 ))${C2} ${a_audio_working[0]}$alsa_driver$port_data$pci_bus_id" audio_data="${C1}Card-$(( $i + 1 ))${C2} ${a_audio_working[0]}$alsa_driver$port_data$pci_bus_id"
@ -4598,9 +4596,9 @@ print_cpu_flags_full()
print_gfx_data() print_gfx_data()
{ {
eval $LOGFS eval $LOGFS
local gfx_data='' i='' card_one='Card' root_alert='' root_x_string='' local gfx_data='' i='' card_id='' root_alert='' root_x_string='' a_gfx_working=''
local screen_resolution="$( get_graphics_res_data )" local screen_resolution="$( get_graphics_res_data )"
local b_is_mesa='false' display_full_string='' local b_is_mesa='false' display_full_string='' gfx_bus_id='' gfx_card_data=''
# set A_GFX_CARD_DATA # set A_GFX_CARD_DATA
get_graphics_card_data get_graphics_card_data
# set A_X_DATA # set A_X_DATA
@ -4620,7 +4618,6 @@ print_gfx_data()
if [[ -z $screen_resolution ]];then if [[ -z $screen_resolution ]];then
screen_resolution='N/A' screen_resolution='N/A'
fi fi
if [[ $B_X_RUNNING == 'true' && $B_ROOT != 'true' ]];then if [[ $B_X_RUNNING == 'true' && $B_ROOT != 'true' ]];then
if [[ -z $x_vendor || -z $x_version ]];then if [[ -z $x_vendor || -z $x_version ]];then
x_vendor='X-Vendor: N/A' x_vendor='X-Vendor: N/A'
@ -4642,16 +4639,33 @@ print_gfx_data()
fi fi
fi fi
if [[ ${#A_GFX_CARD_DATA[@]} -gt 1 ]];then if [[ ${#A_GFX_CARD_DATA[@]} -gt 0 ]];then
i=1 for (( i=0; i < ${#A_GFX_CARD_DATA[@]}; i++ ))
while [[ -n ${A_GFX_CARD_DATA[i]} && $i -le 4 ]]
do do
gfx_data="$gfx_data ${C1}Card-$(($i+1))${C2} ${A_GFX_CARD_DATA[i]}" IFS=","
((i++)) a_gfx_working=( ${A_GFX_CARD_DATA[i]} )
done IFS="$ORIGINAL_IFS"
card_one='Card-1' gfx_bus_id=''
gfx_card_data=${a_gfx_working[0]}
if [[ $B_EXTRA_DATA == 'true' ]];then
if [[ -n ${a_gfx_working[1]} ]];then
gfx_bus_id=" ${C1}busID:${C2} ${a_gfx_working[1]}"
else
gfx_bus_id=" ${C1}busID:${C2} N/A"
fi fi
gfx_data=$( create_print_line "Graphics:" "${C1}$card_one${C2} ${A_GFX_CARD_DATA[0]}${gfx_data} $display_full_string" ) fi
if [[ ${#A_GFX_CARD_DATA[@]} -gt 1 ]];then
card_id="Card-$(($i+1)):"
else
card_id='Card:'
fi
gfx_data="$gfx_data${C1}$card_id${C2} $gfx_card_data$gfx_bus_id "
done
# handle cases where card detection fails, like in PS3, where lspci gives no output, or headless boxes..
else
gfx_data="${C1}Card:${C2} Failed to Detect Video Card! "
fi
gfx_data=$( create_print_line "Graphics:" "${gfx_data}$display_full_string" )
print_screen_output "$gfx_data" print_screen_output "$gfx_data"
# if [[ -z $glx_renderer || -z $glx_version ]];then # if [[ -z $glx_renderer || -z $glx_version ]];then
@ -4854,7 +4868,7 @@ print_networking_data()
if [[ $( wc -w <<< ${a_network_working[2]} ) -gt 1 ]];then if [[ $( wc -w <<< ${a_network_working[2]} ) -gt 1 ]];then
port_plural='s' port_plural='s'
fi fi
port_data=" ${C1}at port$port_plural${C2} ${a_network_working[2]}" port_data=" ${C1}port$port_plural${C2} ${a_network_working[2]}"
fi fi
if [[ -n ${a_network_working[4]} && $B_EXTRA_DATA == 'true' ]];then if [[ -n ${a_network_working[4]} && $B_EXTRA_DATA == 'true' ]];then
pci_bus_id=" ${C1}busID:${C2} ${a_network_working[4]}" pci_bus_id=" ${C1}busID:${C2} ${a_network_working[4]}"
@ -4886,7 +4900,7 @@ print_networking_data()
if [[ $( wc -w <<< ${a_network_working[2]} ) -gt 1 ]];then if [[ $( wc -w <<< ${a_network_working[2]} ) -gt 1 ]];then
port_plural='s' port_plural='s'
fi fi
port_data=" ${C1}at port$port_plural${C2} ${a_network_working[2]}" port_data=" ${C1}port$port_plural${C2} ${a_network_working[2]}"
fi fi
if [[ -n ${a_network_working[4]} && $B_EXTRA_DATA == 'true' ]];then if [[ -n ${a_network_working[4]} && $B_EXTRA_DATA == 'true' ]];then
pci_bus_id=" ${C1}busID:${C2} ${a_network_working[4]}" pci_bus_id=" ${C1}busID:${C2} ${a_network_working[4]}"