new version, fixed a long standing weakness, now the long -f full cpu flag output

sorts, that's much easier to read. I also made the line lengths on that much more accurate
to avoid a bunch of long flags creating a longer line, and made the first line shorter to handle
the line starter text.

New tarball as well, no man page changes.

Not sure why this was left undone for so long, but here it is, nice and neat.
This commit is contained in:
inxi-svn 2013-01-18 22:22:58 +00:00
parent 3f071d5849
commit 352cd1920d

28
inxi
View file

@ -1,8 +1,8 @@
#!/bin/bash #!/bin/bash
######################################################################## ########################################################################
#### Script Name: inxi #### Script Name: inxi
#### version: 1.8.27 #### version: 1.8.28
#### Date: January 9 2013 #### Date: January 18 2013
#### Patch Number: 00 #### Patch Number: 00
######################################################################## ########################################################################
#### SPECIAL THANKS #### SPECIAL THANKS
@ -145,6 +145,7 @@
#### Because webpages come and go, the above information needs to be moved to inxi's wiki #### Because webpages come and go, the above information needs to be moved to inxi's wiki
######################################################################## ########################################################################
#### Valuable Resources #### Valuable Resources
#### CPU flags: http://unix.stackexchange.com/questions/43539/what-do-the-flags-in-proc-cpuinfo-mean
#### gawk arrays: http://www.math.utah.edu/docs/info/gawk_12.html #### gawk arrays: http://www.math.utah.edu/docs/info/gawk_12.html
#### raid mdstat: http://www-01.ibm.com/support/docview.wss?uid=isg3T1011259 #### raid mdstat: http://www-01.ibm.com/support/docview.wss?uid=isg3T1011259
#### http://www.howtoforge.com/replacing_hard_disks_in_a_raid1_array #### http://www.howtoforge.com/replacing_hard_disks_in_a_raid1_array
@ -6773,7 +6774,7 @@ process_cpu_flags()
i = 1 # start at one because of for increment issue i = 1 # start at one because of for increment issue
flag_string = "" flag_string = ""
} }
/^(lm|nx|pni|svm|vmx|(sss|ss)e([2-9])?([a-z])?(_[0-9])?)$/ { /^(lm|nx|pae|pni|svm|vmx|(sss|ss)e([2-9])?([a-z])?(_[0-9])?)$/ {
if ( $0 == "pni" ){ if ( $0 == "pni" ){
a_flags[i] = "sse3" a_flags[i] = "sse3"
} }
@ -7155,6 +7156,7 @@ print_cpu_data()
fi fi
# only print shortened list # only print shortened list
if [[ $B_CPU_FLAGS_FULL != 'true' ]];then if [[ $B_CPU_FLAGS_FULL != 'true' ]];then
# gawk has already sorted this output
cpu_flags=$( process_cpu_flags "${a_cpu_working[3]}" ) cpu_flags=$( process_cpu_flags "${a_cpu_working[3]}" )
cpu_flags=" ${C1}flags$SEP3${C2} ($cpu_flags)" cpu_flags=" ${C1}flags$SEP3${C2} ($cpu_flags)"
fi fi
@ -7201,18 +7203,26 @@ print_cpu_data()
print_cpu_flags_full() print_cpu_flags_full()
{ {
eval $LOGFS eval $LOGFS
local cpu_flags_full="$1" a_cpu_flags='' line_starter='' # note: sort only sorts lines, not words in a string, so convert to lines
local i=0 counter=0 max_length=18 max_length_add=18 flag='' flag_data='' local cpu_flags_full="$( echo $1 | tr " " "\n" | sort )"
local a_cpu_flags='' line_starter=''
local i=0 counter=0 max_length=85 max_length_minus=15 flag='' flag_data=''
local line_length=''
# build the flag line array # build the flag line array
for flag in $cpu_flags_full for flag in $cpu_flags_full
do do
a_cpu_flags[$counter]="${a_cpu_flags[$counter]}$flag " a_cpu_flags[$counter]="${a_cpu_flags[$counter]}$flag "
if [[ $i -ge $max_length ]];then if [[ $counter -eq 0 ]];then
(( counter++ )) line_length_max=$(( $max_length - $max_length_minus ))
max_length=$(( $max_length + $max_length_add )) else
line_length_max=$max_length
fi
if [[ $( wc -c <<< ${a_cpu_flags[$counter]} ) -gt $line_length_max ]];then
(( counter++ ))
fi fi
((i++))
done done
# then print it out # then print it out
for (( i=0; i < ${#a_cpu_flags[@]};i++ )) for (( i=0; i < ${#a_cpu_flags[@]};i++ ))