diff --git a/inxi b/inxi index 8544e1a..868ceeb 100755 --- a/inxi +++ b/inxi @@ -1,7 +1,7 @@ #!/bin/bash ######################################################################## #### Script Name: inxi -#### version: 0.4.18 +#### version: 0.4.19 #### Date: November 8 2008 ######################################################################## #### inxi is a fork of infobash, the original bash sys info script by locsmif @@ -1244,49 +1244,47 @@ get_hard_drive_data_advanced() ## then handle libata names # first get the ata device names, put them into an array - if [[ -e /proc/scsi/sg/device_strs ]]; then - IFS=$'\n' + IFS=$'\n' + if [[ -e /proc/scsi/sg/device_strs && $B_TESTING_FLAG == 'true' ]]; then ## prints out hdd device if field one is ATA type (sata compatibility mode) or prints out scsi device # note: pmap handles usb mounted devices, which have a null first field - if [[ $B_TESTING_FLAG == 'true' ]];then - a_temp_scsi=( $( gawk -F'\t' ' - BEGIN { IGNORECASE=1 } - # if the item starts with empty, void field, assume it is flash drive - /^ata|^scsi|^ |^corsair|^wdc|^kingston/ { - gsub(/,/, " ", $(NF -1) ) - gsub(/^ +| +$/, "", $(NF -1) ) - print $(NF -1) - } - ' /proc/scsi/sg/device_strs ) ) - else - a_temp_scsi=( $( gawk ' - BEGIN { IGNORECASE=1 } - /host/ { - getline a[$0] - getline b[$0] - } - END { - for (i in a) { - if (b[i] ~ / *type: *direct-access.*/) { - #c=gensub(/^ *vendor: (.+) +model: (.+) +rev: (.+)$/,"\\1 \\2 \\3","g",a[i]) - #c=gensub( /^ *vendor: (.+) +model: (.+) +rev:.*$/,"\\1 \\2","g",a[i] ) - # the vendor: string is useless, and is a bug, ATA is not a vendor for example - c=gensub( /^ *vendor: (.+) +model: (.+) +rev:.*$/, "\\2", "g", a[i] ) - gsub(/,/, " ", c) - gsub(/^ +| +$/, "", c) - gsub(/ [ \t]+/, " ", c) - #print a[i] - # we actually want this data, so leaving this off for now -# if (c ~ /\|\|memory stick|memory card/) { -# continue -# } - print c - } + a_temp_scsi=( $( gawk -F'\t' ' + BEGIN { IGNORECASE=1 } + # if the item starts with empty, void field, assume it is flash drive + /^ata|^scsi|^ |^corsair|^wdc|^kingston/ { + gsub(/,/, " ", $(NF -1) ) + gsub(/^ +| +$/, "", $(NF -1) ) + print $(NF -1) + } + ' /proc/scsi/sg/device_strs ) ) + elif [[ -e /proc/scsi/scsi ]]; then + a_temp_scsi=( $( gawk ' + BEGIN { IGNORECASE=1 } + /host/ { + getline a[$0] + getline b[$0] + } + END { + for (i in a) { + if (b[i] ~ / *type: *direct-access.*/) { + #c=gensub(/^ *vendor: (.+) +model: (.+) +rev: (.+)$/,"\\1 \\2 \\3","g",a[i]) + #c=gensub( /^ *vendor: (.+) +model: (.+) +rev:.*$/,"\\1 \\2","g",a[i] ) + # the vendor: string is useless, and is a bug, ATA is not a vendor for example + c=gensub( /^ *vendor: (.+) +model: (.+) +rev:.*$/, "\\2", "g", a[i] ) + gsub(/,/, " ", c) + gsub(/^ +| +$/, "", c) + gsub(/ [ \t]+/, " ", c) + #print a[i] + # we actually want this data, so leaving this off for now +# if (c ~ /\|\|memory stick|memory card/) { +# continue +# } + print c } - }' /proc/scsi/scsi) ) - fi - IFS="$ORIGINAL_IFS" + } + }' /proc/scsi/scsi) ) fi + IFS="$ORIGINAL_IFS" ## then we'll loop through that array looking for matches. Note, with identical drives this will fail, sigh.. ## for future use, that should be tightened up, but for now it's fine.