diff --git a/inxi b/inxi index 99e8adf..f48928b 100755 --- a/inxi +++ b/inxi @@ -1,7 +1,7 @@ #!/bin/bash ######################################################################## #### Script Name: inxi -#### version: 0.4.12 +#### version: 0.4.13 #### Date: November 8 2008 ######################################################################## #### inxi is a fork of infobash, the original bash sys info script by locsmif @@ -1173,7 +1173,7 @@ get_hdd_data_basic() }' ) # create the initial array strings: - # disk-dev, capacity, name + # disk-dev, capacity, name, usb or not # final item is the total of the disk IFS=$'\n' A_HDD_DATA=( $( gawk -v hddused="$hdd_used" ' @@ -1181,7 +1181,7 @@ get_hdd_data_basic() driveSize = $(NF - 1)*1024/1000**3 gsub(/,/, " ", driveSize) gsub(/^ +| +$/, "", driveSize) - printf( $NF",%.1fGB,\n", driveSize ) + printf( $NF",%.1fGB,,\n", driveSize ) } # See http://lanana.org/docs/device-list/devices-2.6+.txt for major numbers used below $1 ~ /^(3|22|33|8)$/ && $2 % 16 == 0 {size+=$3} @@ -1205,6 +1205,7 @@ get_hdd_data_basic() get_hard_drive_data_advanced() { local a_temp_working='' a_temp_scsi='' temp_holder='' temp_name='' i='' j='' + local sd_ls_by_id='' ## check for all ide type drives, non libata, only do it if hdx is in array if [[ -n $( egrep 'hd[a-z]' <<< ${A_HDD_DATA[@]} ) ]];then @@ -1266,9 +1267,14 @@ get_hard_drive_data_advanced() ## ok, ok, it's incomprehensible, search /dev/disk/by-id for a line that contains the # discovered disk name AND ends with the correct identifier, sdx temp_name=$( tr ' ' '_' <<< ${a_temp_scsi[$j]} | cut -d '-' -f 1 ) # get rid of whitespace for WDC + + sd_ls_by_id=$( ls -l /dev/disk/by-id | egrep -m1 ".*$temp_name.*${a_temp_working[0]}$" ) # echo temp_name:$temp_name - if [[ -n $( ls -l /dev/disk/by-id | egrep -m1 ".*$temp_name.*${a_temp_working[0]}$" ) ]];then + if [[ -n $sd_ls_by_id ]];then a_temp_working[2]=${a_temp_scsi[$j]} + if [[ -n $( grep 'usb-' <<< $sd_ls_by_id ) ]];then + a_temp_working[3]='usb' + fi break else # special initial usb handling @@ -1279,6 +1285,7 @@ get_hard_drive_data_advanced() # fi fi done + # these loops are to easily extend the cpu array created in the awk script above with more fields per cpu. for (( j=0; j < ${#a_temp_working[@]}; j++ )) do @@ -1675,7 +1682,7 @@ print_gfx_data() print_hard_disk_data() { local hdd_data='' partition_data='' a_partition_working='' hdd_model='' a_hdd_working='' - local dev_data='' size_data='' hdd_model_2='' hdd_data_2='' + local dev_data='' size_data='' hdd_model_2='' hdd_data_2='' usb_data='' if [[ $VERBOSITY_LEVEL -ge 3 ]];then ## note: the output part of this should be in the print hdd data function, not here @@ -1687,14 +1694,19 @@ print_hard_disk_data() a_hdd_working=( ${A_HDD_DATA[i]} ) IFS="$ORIGINAL_IFS" if [[ $B_EXTRA_DATA == 'true' ]];then + if [[ -n ${a_hdd_working[3]} ]];then + usb_data="(${a_hdd_working[3]}) " + else + usb_data='' + fi dev_data="/dev/${a_hdd_working[0]} - " size_data=" - ${a_hdd_working[1]}" fi # wrap to avoid long lines if [[ $i -gt 1 && $B_EXTRA_DATA == 'true' ]] || [[ $i -gt 3 ]];then - hdd_model_2="${hdd_model_2}${hdd_model_2+${C1}($(($i+1)))${C2}}$dev_data${a_hdd_working[2]}$size_data " + hdd_model_2="${hdd_model_2}${hdd_model_2+${C1}($(($i+1)))${C2}}$usb_data$dev_data${a_hdd_working[2]}$size_data " else - hdd_model="${hdd_model}${hdd_model+ ${C1}($(($i+1)))${C2}}$dev_data${a_hdd_working[2]}$size_data" + hdd_model="${hdd_model}${hdd_model+ ${C1}($(($i+1)))${C2}}$usb_data$dev_data${a_hdd_working[2]}$size_data" fi done if [[ -z $hdd_model ]];then