mirror of
https://github.com/smxi/inxi.git
synced 2025-01-19 08:57:57 +00:00
Fixed broken cache output, fixed bogomips output, created new cpu data function that takes core count and data number and
creates correct value for all cores total
This commit is contained in:
parent
84beb29dcb
commit
f68dc801d4
89
inxi
89
inxi
|
@ -1,8 +1,8 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
########################################################################
|
########################################################################
|
||||||
#### Script Name: inxi
|
#### Script Name: inxi
|
||||||
#### version: 0.3.8
|
#### version: 0.3.9
|
||||||
#### Date: November 2 2008
|
#### Date: November 3 2008
|
||||||
########################################################################
|
########################################################################
|
||||||
#### inxi is a fork of infobash, the original bash sys info script by locsmif
|
#### inxi is a fork of infobash, the original bash sys info script by locsmif
|
||||||
#### As time permits functionality and recoding will occur.
|
#### As time permits functionality and recoding will occur.
|
||||||
|
@ -111,12 +111,13 @@ VERBOSITY_LEVEL=0
|
||||||
# Supported number of verbosity levels, including 0
|
# Supported number of verbosity levels, including 0
|
||||||
VERBOSITY_LEVELS=5
|
VERBOSITY_LEVELS=5
|
||||||
|
|
||||||
# Clear nullglob, because it creates unpredictable situations with IFS=$'\n' ARR=($VAR) IFS="$OIFS"
|
# Clear nullglob, because it creates unpredictable situations with IFS=$'\n' ARR=($VAR) IFS="$ORIGINAL_IFS"
|
||||||
# type constructs. Stuff like [rev a1] is now seen as a glob expansion pattern, and fails, and
|
# type constructs. Stuff like [rev a1] is now seen as a glob expansion pattern, and fails, and
|
||||||
# therefore results in nothing. Tricky as fuck.
|
# therefore results in nothing. Tricky as fuck.
|
||||||
shopt -u nullglob
|
shopt -u nullglob
|
||||||
# Backup the current Internal Field Seperator
|
## info on bash built in: $IFS - http://tldp.org/LDP/abs/html/internalvariables.html
|
||||||
OIFS="$IFS"
|
# Backup the current Internal Field Separator
|
||||||
|
ORIGINAL_IFS="$IFS"
|
||||||
# These two determine separators in single line output, to force irc clients not to break off sections
|
# These two determine separators in single line output, to force irc clients not to break off sections
|
||||||
FL1='-'
|
FL1='-'
|
||||||
FL2=''
|
FL2=''
|
||||||
|
@ -387,7 +388,7 @@ set_color_scheme()
|
||||||
done
|
done
|
||||||
IFS=","
|
IFS=","
|
||||||
script_colors=(${A_COLOR_SCHEMES[$1]})
|
script_colors=(${A_COLOR_SCHEMES[$1]})
|
||||||
IFS="$OIFS"
|
IFS="$ORIGINAL_IFS"
|
||||||
C1="${!script_colors[0]}"
|
C1="${!script_colors[0]}"
|
||||||
C2="${!script_colors[1]}"
|
C2="${!script_colors[1]}"
|
||||||
CN="${!script_colors[2]}"
|
CN="${!script_colors[2]}"
|
||||||
|
@ -710,7 +711,7 @@ set_calculated_variables()
|
||||||
added_path="$added_path:$path"
|
added_path="$added_path:$path"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
IFS="$OIFS"
|
IFS="$ORIGINAL_IFS"
|
||||||
PATH="${PATH}${added_path}"
|
PATH="${PATH}${added_path}"
|
||||||
##echo "PATH='$PATH'"
|
##echo "PATH='$PATH'"
|
||||||
##/bin/sh -c 'echo "PATH in subshell=\"$PATH\""'
|
##/bin/sh -c 'echo "PATH in subshell=\"$PATH\""'
|
||||||
|
@ -730,8 +731,8 @@ get_cpu_core_count()
|
||||||
{
|
{
|
||||||
## Because of the upcoming release of cpus with core counts over 6, a count of cores is given after Deca (10)
|
## Because of the upcoming release of cpus with core counts over 6, a count of cores is given after Deca (10)
|
||||||
# count the number of processors given
|
# count the number of processors given
|
||||||
local cpu_core_count=$(grep -c "cpu cores" /proc/cpuinfo| cut -d':' -f2)
|
local cpu_core_count=$(grep -ic "cpu cores" /proc/cpuinfo| cut -d':' -f2)
|
||||||
local cpu_alpha_count=''
|
local cpu_alpha_count='' core_count=''
|
||||||
|
|
||||||
if [[ $cpu_core_count -lt 2 ]]; then
|
if [[ $cpu_core_count -lt 2 ]]; then
|
||||||
cpu_core_count=1
|
cpu_core_count=1
|
||||||
|
@ -751,8 +752,8 @@ get_cpu_core_count()
|
||||||
10) cpu_alpha_count='Deca';;
|
10) cpu_alpha_count='Deca';;
|
||||||
*) cpu_alpha_count='Multi';;
|
*) cpu_alpha_count='Multi';;
|
||||||
esac
|
esac
|
||||||
|
## we'll be splitting the output to number of cores/core count string
|
||||||
core_count="$cpu_alpha_count Core"
|
core_count="$cpu_core_count:$cpu_alpha_count Core"
|
||||||
echo "$core_count"
|
echo "$core_count"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -805,13 +806,13 @@ get_cpu_data()
|
||||||
}
|
}
|
||||||
' /proc/cpuinfo))
|
' /proc/cpuinfo))
|
||||||
|
|
||||||
IFS="$OIFS"
|
IFS="$ORIGINAL_IFS"
|
||||||
|
|
||||||
for (( i=0; i < ${#A_CPU_DATA[@]} - 1; i++ ))
|
for (( i=0; i < ${#A_CPU_DATA[@]} - 1; i++ ))
|
||||||
do
|
do
|
||||||
IFS=","
|
IFS=","
|
||||||
a_cpu_working=(${A_CPU_DATA[i]})
|
a_cpu_working=(${A_CPU_DATA[i]})
|
||||||
IFS="$OIFS"
|
IFS="$ORIGINAL_IFS"
|
||||||
unset A_CPU_DATA[i]
|
unset A_CPU_DATA[i]
|
||||||
a_cpu_working[0]=$( sanitize_characters A_NORMAL_BANS "${a_cpu_working[0]}" )
|
a_cpu_working[0]=$( sanitize_characters A_NORMAL_BANS "${a_cpu_working[0]}" )
|
||||||
a_cpu_working[0]=$( sanitize_characters A_CPU_BANS "${a_cpu_working[0]}" )
|
a_cpu_working[0]=$( sanitize_characters A_CPU_BANS "${a_cpu_working[0]}" )
|
||||||
|
@ -853,7 +854,7 @@ get_cpu_data()
|
||||||
|
|
||||||
IFS=","
|
IFS=","
|
||||||
a_cpu_working=(${A_CPU_DATA[0]})
|
a_cpu_working=(${A_CPU_DATA[0]})
|
||||||
IFS="$OIFS"
|
IFS="$ORIGINAL_IFS"
|
||||||
# For the short line
|
# For the short line
|
||||||
# CPU_MODEL="${CPU2}${CPU2+ }${a_cpu_working[0]}" # clocked at [${CPU[${#CPU[@]}-1]}]" # old CPU2
|
# CPU_MODEL="${CPU2}${CPU2+ }${a_cpu_working[0]}" # clocked at [${CPU[${#CPU[@]}-1]}]" # old CPU2
|
||||||
CPU_MODEL="${a_cpu_working[0]}"
|
CPU_MODEL="${a_cpu_working[0]}"
|
||||||
|
@ -959,7 +960,7 @@ get_graphics_card_data()
|
||||||
|
|
||||||
IFS=$'\n'
|
IFS=$'\n'
|
||||||
A_GFX_CARD_DATA=( $( echo "$lspci_data" | gawk -F': ' '/VGA compatible controller/ { print $NF }' ) )
|
A_GFX_CARD_DATA=( $( echo "$lspci_data" | gawk -F': ' '/VGA compatible controller/ { print $NF }' ) )
|
||||||
IFS="$OIFS"
|
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 A_NORMAL_BANS "${A_GFX_CARD_DATA[i]}" )
|
A_GFX_CARD_DATA[i]=$( sanitize_characters A_NORMAL_BANS "${A_GFX_CARD_DATA[i]}" )
|
||||||
|
@ -1009,7 +1010,7 @@ get_graphics_glx_data()
|
||||||
printf("%s\n%s\n%s\n", join(a,", "), join(b,", "), join(c,", "))
|
printf("%s\n%s\n%s\n", join(a,", "), join(b,", "), join(c,", "))
|
||||||
}
|
}
|
||||||
' ) )
|
' ) )
|
||||||
IFS="$OIFS"
|
IFS="$ORIGINAL_IFS"
|
||||||
|
|
||||||
# GLXR=$(glxinfo | gawk -F ': ' 'BEGIN {IGNORECASE=1} /opengl renderer/ && $2 !~ /mesa/ {seen[$2]++} END {for (i in seen) {printf("%s ",i)}}')
|
# GLXR=$(glxinfo | gawk -F ': ' 'BEGIN {IGNORECASE=1} /opengl renderer/ && $2 !~ /mesa/ {seen[$2]++} END {for (i in seen) {printf("%s ",i)}}')
|
||||||
# GLXV=$(glxinfo | gawk -F ': ' 'BEGIN {IGNORECASE=1} /opengl version/ && $2 !~ /mesa/ {seen[$2]++} END {for (i in seen) {printf("%s ",i)}}')
|
# GLXV=$(glxinfo | gawk -F ': ' 'BEGIN {IGNORECASE=1} /opengl version/ && $2 !~ /mesa/ {seen[$2]++} END {for (i in seen) {printf("%s ",i)}}')
|
||||||
|
@ -1138,7 +1139,7 @@ get_hard_drive_data()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
' /proc/scsi/scsi))
|
' /proc/scsi/scsi))
|
||||||
IFS="$OIFS"
|
IFS="$ORIGINAL_IFS"
|
||||||
|
|
||||||
for (( i=0; i < ${#a_total_hdd[@]}; i++ ))
|
for (( i=0; i < ${#a_total_hdd[@]}; i++ ))
|
||||||
do
|
do
|
||||||
|
@ -1255,7 +1256,7 @@ get_networking_data()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
') )
|
') )
|
||||||
IFS="$OIFS"
|
IFS="$ORIGINAL_IFS"
|
||||||
}
|
}
|
||||||
|
|
||||||
## return uptime string
|
## return uptime string
|
||||||
|
@ -1265,6 +1266,20 @@ get_uptime()
|
||||||
echo $( uptime | gawk '{ a = gensub(/^.*up *([^,]*).*$/,"\\1","g",$0); print a }' )
|
echo $( uptime | gawk '{ a = gensub(/^.*up *([^,]*).*$/,"\\1","g",$0); print a }' )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
## multiply the core count by the data to be calculated, bmips, cache
|
||||||
|
# args: $1 - string to handle; $2 - cpu count
|
||||||
|
calculate_multicore_data()
|
||||||
|
{
|
||||||
|
local string_number=$1 string_data=''
|
||||||
|
|
||||||
|
if [ -n "$( egrep -i '( mb| kb)' <<< $1 )" ];then
|
||||||
|
string_data=" $( awk '{print $2}' <<< $1 )" # add a space for output
|
||||||
|
string_number=$( awk '{print $1}' <<< $1 )
|
||||||
|
fi
|
||||||
|
string_number=$( echo $string_number $2 | awk '{total = $1*$2; print total}' )
|
||||||
|
echo "$string_number$string_data"
|
||||||
|
}
|
||||||
|
|
||||||
#### -------------------------------------------------------------------
|
#### -------------------------------------------------------------------
|
||||||
#### print and processing of output data
|
#### print and processing of output data
|
||||||
#### -------------------------------------------------------------------
|
#### -------------------------------------------------------------------
|
||||||
|
@ -1272,12 +1287,12 @@ get_uptime()
|
||||||
print_cpu_data()
|
print_cpu_data()
|
||||||
{
|
{
|
||||||
local cpu_data='' i='' a_cpu_working='' cpu_clock_speed='' cpu_multi_clock_data=''
|
local cpu_data='' i='' a_cpu_working='' cpu_clock_speed='' cpu_multi_clock_data=''
|
||||||
local bmip_data=''
|
local bmip_data='' cpu_cache=''
|
||||||
|
|
||||||
##print_screen_output "A_CPU_DATA[0]=\"${A_CPU_DATA[0]}\""
|
##print_screen_output "A_CPU_DATA[0]=\"${A_CPU_DATA[0]}\""
|
||||||
IFS=","
|
IFS=","
|
||||||
a_cpu_working=(${A_CPU_DATA[0]})
|
a_cpu_working=(${A_CPU_DATA[0]})
|
||||||
IFS="$OIFS"
|
IFS="$ORIGINAL_IFS"
|
||||||
# Strange (and also some expected) behavior encountered.
|
# Strange (and also some expected) behavior encountered.
|
||||||
# If print_screen_output() uses $1 as the parameter to output to the screen,
|
# If print_screen_output() uses $1 as the parameter to output to the screen,
|
||||||
# then passing "<text1> ${ARR[@]} <text2>"
|
# then passing "<text1> ${ARR[@]} <text2>"
|
||||||
|
@ -1298,13 +1313,15 @@ print_cpu_data()
|
||||||
# # Array CPU always has one element: max clockfreq found. Therefore -gt and not -ge
|
# # Array CPU always has one element: max clockfreq found. Therefore -gt and not -ge
|
||||||
# unset cpu_core_count
|
# unset cpu_core_count
|
||||||
# fi
|
# fi
|
||||||
cpu_data=$( create_print_line "CPU:" "${C1}${cpu_core_count}${C2} ${a_cpu_working[0]}" )
|
cpu_data=$( create_print_line "CPU:" "${C1}${cpu_core_count_string}${C2} ${a_cpu_working[0]}" )
|
||||||
if [ "$VERBOSITY_LEVEL" -ge 3 ];then
|
if [ "$VERBOSITY_LEVEL" -ge 3 ];then
|
||||||
## this needs to be updated for multicore I believe, bogomips x core count, or something
|
## this needs to be updated for multicore I believe, bogomips x core count, or something
|
||||||
if [ "$B_EXTRA_DATA" == 'true' ];then
|
if [ "$B_EXTRA_DATA" == 'true' ];then
|
||||||
bmip_data=" ${C1}bmips${C2} ${a_cpu_working[4]}"
|
bmip_data=$( calculate_multicore_data "${a_cpu_working[4]}" "$cpu_core_count" )
|
||||||
|
bmip_data=" ${C1}bmips${C2} $bmip_data"
|
||||||
fi
|
fi
|
||||||
cpu_data="$cpu_data${C2} ${C1}cache${C2} ${a_cpu_working[2]} ${C1}flags${C2} ($CPU_FLAGS)$bmip_data${CN}"
|
cpu_cache=$( calculate_multicore_data "${a_cpu_working[2]}" "$cpu_core_count" )
|
||||||
|
cpu_data="$cpu_data${C2} ${C1}cache${C2} $cpu_cache ${C1}flags${C2} ($CPU_FLAGS)$bmip_data${CN}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$VERBOSITY_LEVEL" -ge 5 -a "${#A_CPU_DATA[@]}" -gt 2 ]
|
if [ "$VERBOSITY_LEVEL" -ge 5 -a "${#A_CPU_DATA[@]}" -gt 2 ]
|
||||||
|
@ -1323,7 +1340,7 @@ print_cpu_data()
|
||||||
do
|
do
|
||||||
IFS=","
|
IFS=","
|
||||||
a_cpu_working=(${A_CPU_DATA[i]})
|
a_cpu_working=(${A_CPU_DATA[i]})
|
||||||
IFS="$OIFS"
|
IFS="$ORIGINAL_IFS"
|
||||||
cpu_multi_clock_data="$cpu_multi_clock_data ${C1}($(( i + 1 )))${C2} ${a_cpu_working[1]} MHz${CN}"
|
cpu_multi_clock_data="$cpu_multi_clock_data ${C1}($(( i + 1 )))${C2} ${a_cpu_working[1]} MHz${CN}"
|
||||||
if [ "$i" -gt 10 ];then
|
if [ "$i" -gt 10 ];then
|
||||||
break
|
break
|
||||||
|
@ -1334,23 +1351,6 @@ print_cpu_data()
|
||||||
print_screen_output "$cpu_multi_clock_data"
|
print_screen_output "$cpu_multi_clock_data"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
## leave this here in case they release cpus that can run at different speeds per core
|
|
||||||
# for (( i=1; i < ${#A_CPU_DATA[@]}-1; i++ ))
|
|
||||||
# do
|
|
||||||
# IFS=","
|
|
||||||
# a_cpu_working=(${A_CPU_DATA[i]})
|
|
||||||
# IFS="$OIFS"
|
|
||||||
# cpu_data=$( create_print_line " " "${C1}($(( i + 1 )))${C2} ${a_cpu_working[0]}" )
|
|
||||||
# if [ "$VERBOSITY_LEVEL" -ge 3 ];then
|
|
||||||
# cpu_data="$cpu_data${C2} ${a_cpu_working[2]} cache${C2} ${C1}flags${C2} ($CPU_FLAGS)${CN}"
|
|
||||||
# fi
|
|
||||||
# cpu_data="$cpu_data ${C1}clocked at${C2} ${a_cpu_working[1]} MHz${CN}"
|
|
||||||
# print_screen_output "$cpu_data"
|
|
||||||
# if [ "$i" -gt 10 ];then
|
|
||||||
# break
|
|
||||||
# fi
|
|
||||||
# done
|
|
||||||
}
|
}
|
||||||
|
|
||||||
print_gfx_data()
|
print_gfx_data()
|
||||||
|
@ -1487,7 +1487,7 @@ print_short_data()
|
||||||
#C1="${C1},1"; C2="${C2},1"; CN="${CN},1"
|
#C1="${C1},1"; C2="${C2},1"; CN="${CN},1"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
short_data="${C1}CPU${CN}[${C2}${cpu_core_count} ${CPU_MODEL} clocked at ${CPU_CLOCK}${CN}] ${C1}Kernel${CN}[${C2}${current_kernel}${CN}] ${C1}Up${CN}[${C2}${FL2}${FL1}${up_time}${FL1}${CN}] ${C1}Mem${CN}[${C2}${FL2}${FL1}${memory}${FL1}${CN}] ${C1}HDD${CN}[${C2}${FL2}${FL1}${hdd_capacity}($hdd_used)${FL1}${CN}] ${C1}Procs${CN}[${C2}${FL2}${FL1}${processes}${FL1}${CN}]"
|
short_data="${C1}CPU${CN}[${C2}${cpu_core_count_string} ${CPU_MODEL} clocked at ${CPU_CLOCK}${CN}] ${C1}Kernel${CN}[${C2}${current_kernel}${CN}] ${C1}Up${CN}[${C2}${FL2}${FL1}${up_time}${FL1}${CN}] ${C1}Mem${CN}[${C2}${FL2}${FL1}${memory}${FL1}${CN}] ${C1}HDD${CN}[${C2}${FL2}${FL1}${hdd_capacity}($hdd_used)${FL1}${CN}] ${C1}Procs${CN}[${C2}${FL2}${FL1}${processes}${FL1}${CN}]"
|
||||||
|
|
||||||
if [ "$SHOW_IRC" -gt 0 ];then
|
if [ "$SHOW_IRC" -gt 0 ];then
|
||||||
short_data="${short_data} ${C1}Client${CN}[${C2}${IRC_CLIENT}${IRC_CLIENT_VERSION}${CN}]"
|
short_data="${short_data} ${C1}Client${CN}[${C2}${IRC_CLIENT}${IRC_CLIENT_VERSION}${CN}]"
|
||||||
|
@ -1533,7 +1533,8 @@ print_it_out()
|
||||||
## note: remember that in bash, child functions inherit local variables
|
## note: remember that in bash, child functions inherit local variables
|
||||||
local current_kernel=$( uname -a | gawk '{print $1,$3,$(NF-1)}' )
|
local current_kernel=$( uname -a | gawk '{print $1,$3,$(NF-1)}' )
|
||||||
local processes="$(( $( ps aux | wc -l ) - 1 ))"
|
local processes="$(( $( ps aux | wc -l ) - 1 ))"
|
||||||
local cpu_core_count="$( get_cpu_core_count )"
|
local cpu_core_count_string="$( get_cpu_core_count | cut -d ':' -f 2 )"
|
||||||
|
local cpu_core_count="$( get_cpu_core_count | cut -d ':' -f 1 )"
|
||||||
local lspci_data='' ## only for verbose needed
|
local lspci_data='' ## only for verbose needed
|
||||||
local up_time="$( get_uptime )"
|
local up_time="$( get_uptime )"
|
||||||
## assemble data for output
|
## assemble data for output
|
||||||
|
@ -1592,7 +1593,7 @@ if [ "$KONVI" -eq 1 ];then
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
IFS="$OIFS"
|
IFS="$ORIGINAL_IFS"
|
||||||
fi
|
fi
|
||||||
## leave this for debugging dcop stuff if we get that working
|
## leave this for debugging dcop stuff if we get that working
|
||||||
# print_screen_output "DCPORT: $DCPORT"
|
# print_screen_output "DCPORT: $DCPORT"
|
||||||
|
|
Loading…
Reference in a new issue