More refactoring, made short output use the new cpu_core_count function, got rid of CPU2 stuff, commented out chunks of

now unneeded get cpu data stuff

More clean up, tightened up print functions, added some more locals in main print function for child data, removed 
corresponding globals.
This commit is contained in:
inxi-svn 2008-10-30 21:23:29 +00:00
parent 1dd8fc0354
commit 1e6b18bcbd

131
inxi
View file

@ -38,6 +38,9 @@
## Variable initializations: null values ## Variable initializations: null values
COLOR_SCHEME_SET='' COLOR_SCHEME_SET=''
COLOR_SCHEME='' COLOR_SCHEME=''
CPU_MODEL=''
CPU_CLOCK=''
CPU_FLAGS=''
IRC_CLIENT='' IRC_CLIENT=''
IRC_CLIENT_VERSION='' IRC_CLIENT_VERSION=''
@ -56,7 +59,6 @@ B_X_RUNNING='false'
# Variable initializations: constants # Variable initializations: constants
ALLUP=0 # inxi hasn't been 'booted' yet. ALLUP=0 # inxi hasn't been 'booted' yet.
CRAP=0 # New parameter CRAP=0 # New parameter
CURRENT_KERNEL=$( uname -a | gawk '{print $1,$3,$(NF-1)}' )
DBI=0 # Debug Buffer Index, index into a debug buffer storing debug messages until inxi is 'all up' DBI=0 # Debug Buffer Index, index into a debug buffer storing debug messages until inxi is 'all up'
DCOPOBJ="default" DCOPOBJ="default"
DEBUG=0 # Set levels from 1-10 DEBUG=0 # Set levels from 1-10
@ -67,7 +69,7 @@ FLAG=0 # A throw-away 'flag' variable intended to be used throughout inxi
INDENT=10 # Default indentation level INDENT=10 # Default indentation level
KONVI=0 # default to false, no konversation found KONVI=0 # default to false, no konversation found
LSPCI=$( lspci -v | awk '{ gsub(/\(prog-if[^)]*\)/,""); print }' ) LSPCI=$( lspci -v | awk '{ gsub(/\(prog-if[^)]*\)/,""); print }' )
NO_CPU_COUNT=0 # Wether or not the string "dual" or similar is found in cpuinfo output. If so, avoid dups. # NO_CPU_COUNT=0 # Wether or not the string "dual" or similar is found in cpuinfo output. If so, avoid dups.
PARAMETER_LIMIT=30 # This is a variable that controls how many parameters inxi will parse in a /proc/<pid>/cmdline file before stopping. PARAMETER_LIMIT=30 # This is a variable that controls how many parameters inxi will parse in a /proc/<pid>/cmdline file before stopping.
SCHEME=0 # set default scheme SCHEME=0 # set default scheme
SHOW_IRC=2 # SHOW_IRC=1 to avoid showing the irc client version number, or SHOW_IRC=0 to disable client information completely. SHOW_IRC=2 # SHOW_IRC=1 to avoid showing the irc client version number, or SHOW_IRC=0 to disable client information completely.
@ -173,6 +175,9 @@ error_handler()
7) 7)
print_screen_output "$SCRIPT_NAME: unknown parameter: $2" print_screen_output "$SCRIPT_NAME: unknown parameter: $2"
;; ;;
8)
print_screen_output "$SCRIPT_NAME: the self-updater failed, wget exited with error: $2. You probably need to be root."
;;
*) *)
print_screen_output "$SCRIPT_NAME: error unknown: $@" print_screen_output "$SCRIPT_NAME: error unknown: $@"
set -- 99 set -- 99
@ -397,11 +402,13 @@ get_parameters()
;; ;;
-U) -U)
print_screen_output "Updating $SCRIPT_NAME now..." print_screen_output "Updating $SCRIPT_NAME now..."
wget -O $SCRIPT_PATH/$SCRIPT_NAME http://techpatterns.com/downloads/distro/$SCRIPT_NAME wget -O $SCRIPT_PATH/$SCRIPT_NAME http://techpatterns.com/downloads/distro/$SCRIPT_NAME || error_handler 8 "$?"
if [ "$?" -eq 0 ];then
print_screen_output "To run the new version, just start $SCRIPT_NAME again." print_screen_output "To run the new version, just start $SCRIPT_NAME again."
exit 0 exit 0
fi
;; ;;
--version) -V|--version)
print_version_info print_version_info
exit 0 exit 0
;; ;;
@ -426,6 +433,7 @@ get_parameters()
done done
} }
## print out help menu
show_options() show_options()
{ {
print_screen_output "$SCRIPT_NAME supports the following options:" print_screen_output "$SCRIPT_NAME supports the following options:"
@ -445,6 +453,7 @@ show_options()
print_screen_output "" print_screen_output ""
} }
## print out version information for -V/--version
print_version_info() print_version_info()
{ {
print_screen_output "InfoBash, the universal, portable, system info script for irc." print_screen_output "InfoBash, the universal, portable, system info script for irc."
@ -466,7 +475,7 @@ print_version_info()
#### initial startup stuff #### initial startup stuff
#### ------------------------------------------------------------------- #### -------------------------------------------------------------------
# Determine where inxi was run from # Determine where inxi was run from, set IRC_CLIENT and IRC_CLIENT_VERSION
get_start_source() get_start_source()
{ {
local irc_client_path='' irc_client_path_lower='' non_native_konvi='' i='' local irc_client_path='' irc_client_path_lower='' non_native_konvi='' i=''
@ -601,6 +610,8 @@ get_start_source()
fi fi
} }
## this is a mishmash and will be mostly moved to other places over time, for now
## it's just a holder for some misc stuff that has to happen
set_calculated_variables() set_calculated_variables()
{ {
local path='' sys_path='' added_path='' local path='' sys_path='' added_path=''
@ -642,6 +653,7 @@ set_calculated_variables()
#### get data types #### get data types
#### ------------------------------------------------------------------- #### -------------------------------------------------------------------
## return value cpu core count string, this helps resolve the multi redundant lines of old style output
get_cpu_core_count() 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)
@ -672,6 +684,7 @@ get_cpu_core_count()
echo "$core_count" echo "$core_count"
} }
## working, will be replaced by new trash80 stuff
get_cpu_data() get_cpu_data()
{ {
local i='' j='' cpu_array_nu='' a_cpu_working='' multi_cpu='' local i='' j='' cpu_array_nu='' a_cpu_working='' multi_cpu=''
@ -740,45 +753,48 @@ get_cpu_data()
fi fi
done done
done done
## not using this now, replaced by new get_core_count, but if we need this in the future
## it will be in modules/legacy, for now leaving it here
# test for multi core cpu present # test for multi core cpu present
multi_cpu=$( grep -i 'dual\|triple\|quad' <<< "${A_CPU_DATA[@]}" ) # multi_cpu=$( grep -i 'dual\|triple\|quad' <<< "${A_CPU_DATA[@]}" )
if [ -n "$multi_cpu" ];then # if [ -n "$multi_cpu" ];then
NO_CPU_COUNT=1 # NO_CPU_COUNT=1
else # else
case $(( ${#A_CPU_DATA[@]}-1 )) in # case $(( ${#A_CPU_DATA[@]}-1 )) in
2) # 2)
CPU2="Dual" # CPU2="Dual"
;; # ;;
3) # 3)
CPU2="Triple" # CPU2="Triple"
;; # ;;
4) # 4)
CPU2="Quad" # CPU2="Quad"
;; # ;;
[5-9]|[1-9][0-9]) # [5-9]|[1-9][0-9])
CPU2="${#A_CPU_DATA[@]}x" # CPU2="${#A_CPU_DATA[@]}x"
;; # ;;
*) # *)
unset CPU2 # unset CPU2
;; # ;;
esac # esac
fi # fi
IFS="," IFS=","
a_cpu_working=(${A_CPU_DATA[0]}) a_cpu_working=(${A_CPU_DATA[0]})
IFS="$OIFS" IFS="$OIFS"
# For the short line # For the short line
CPUMODEL="${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]}"
# set count first, this avoids an syntax highlighting error with nested {{...}} # set count first, this avoids an syntax highlighting error with nested {{...}}
cpu_array_nu=$(( ${#A_CPU_DATA[@]} - 1 )) cpu_array_nu=$(( ${#A_CPU_DATA[@]} - 1 ))
CPUCLOCK="${A_CPU_DATA[$cpu_array_nu]}" # old CPU3 CPU_CLOCK="${A_CPU_DATA[$cpu_array_nu]}" # old CPU3
CPUFLAGS="${a_cpu_working[3]}" # old CPU4 CPU_FLAGS="${a_cpu_working[3]}" # old CPU4
# nx = AMD stack protection extensions # nx = AMD stack protection extensions
# lm = Intel 64bit extensions # lm = Intel 64bit extensions
# sse, sse2, pni = sse1,2,3 gfx extensions # sse, sse2, pni = sse1,2,3 gfx extensions
# svm = AMD pacifica virtualization extensions # svm = AMD pacifica virtualization extensions
# vmx = Intel IVT (vanderpool) virtualization extensions # vmx = Intel IVT (vanderpool) virtualization extensions
CPUFLAGS=$( echo "$CPUFLAGS" | awk ' CPU_FLAGS=$( echo "$CPU_FLAGS" | awk '
BEGIN { BEGIN {
RS=" " RS=" "
ssel["sse"] = 1 ssel["sse"] = 1
@ -805,11 +821,12 @@ get_cpu_data()
' ) ' )
#grep -oE '\<(nx|lm|sse[0-9]?|pni|svm|vmx)\>' | tr '\n' ' ')) #grep -oE '\<(nx|lm|sse[0-9]?|pni|svm|vmx)\>' | tr '\n' ' '))
if [ -z "$CPUFLAGS" ];then if [ -z "$CPU_FLAGS" ];then
CPUFLAGS="-" CPU_FLAGS="-"
fi fi
} }
## return distro name/id if found
get_distro_data() get_distro_data()
{ {
local i='' distro='' distro_file='' a_distro_glob='' local i='' distro='' distro_file='' a_distro_glob=''
@ -853,6 +870,7 @@ get_distro_data()
echo "$distro" echo "$distro"
} }
## create array of gfx cards installed on system
get_graphics_card_data() get_graphics_card_data()
{ {
local i='' local i=''
@ -869,6 +887,7 @@ get_graphics_card_data()
# GFXMEM="size=[$(echo "$LSPCI" | 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" | 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]"
} }
## create array of glx data
get_graphics_glx_data() get_graphics_glx_data()
{ {
if [ "$B_X_RUNNING" == 'true' ];then if [ "$B_X_RUNNING" == 'true' ];then
@ -905,9 +924,13 @@ get_graphics_glx_data()
} }
' ) ) ' ) )
IFS="$OIFS" IFS="$OIFS"
# 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)}}')
fi fi
} }
## return screen resolution / tty resolution
get_graphics_res_data() get_graphics_res_data()
{ {
local screen_resolution='' local screen_resolution=''
@ -945,6 +968,7 @@ get_graphics_agp_data()
agp_module=$( gawk '/agp/ && !/agpgart/ && $3 > 0 { print(gensub(/(.*)_agp.*/,"\\1","g",$1)) }' /proc/modules ) agp_module=$( gawk '/agp/ && !/agpgart/ && $3 > 0 { print(gensub(/(.*)_agp.*/,"\\1","g",$1)) }' /proc/modules )
} }
## create array of x vendor/version data
get_graphics_x_data() get_graphics_x_data()
{ {
local x_vendor='' x_version='' local x_vendor='' x_version=''
@ -983,8 +1007,7 @@ get_graphics_x_data()
fi fi
} }
## this will be replaced by trash80 stuff, working copy
get_hard_drive_data() get_hard_drive_data()
{ {
local disk='' i='' local disk='' i=''
@ -1071,6 +1094,7 @@ get_hard_drive_data()
fi fi
} }
## return memory used/installed
get_memory_data() get_memory_data()
{ {
local memory='' local memory=''
@ -1086,6 +1110,7 @@ get_memory_data()
echo "$memory" echo "$memory"
} }
## create array of network cards
get_networking_data() get_networking_data()
{ {
IFS=$'\n' IFS=$'\n'
@ -1127,6 +1152,7 @@ get_networking_data()
IFS="$OIFS" IFS="$OIFS"
} }
## return uptime string
get_uptime() get_uptime()
{ {
local up_time=$( uptime | gawk '{ a = gensub(/^.*up *([^,]*).*$/,"\\1","g",$0); gsub(/ /,"",a); print a }' ) local up_time=$( uptime | gawk '{ a = gensub(/^.*up *([^,]*).*$/,"\\1","g",$0); gsub(/ /,"",a); print a }' )
@ -1140,7 +1166,7 @@ get_uptime()
print_cpu_data() print_cpu_data()
{ {
local cpu_data='' i='' a_cpu_working='' cpu_core_count=$( get_cpu_core_count ) local cpu_data='' i='' a_cpu_working=''
##print_screen_output "CPU[0]=\"${CPU[0]}\"" ##print_screen_output "CPU[0]=\"${CPU[0]}\""
IFS="," IFS=","
@ -1159,7 +1185,7 @@ print_cpu_data()
if [[ -z ${a_cpu_working[2]} ]];then if [[ -z ${a_cpu_working[2]} ]];then
a_cpu_working[2]="unknown" a_cpu_working[2]="unknown"
fi fi
## leave this here in case they release cpus that can run at different speeds per core
# if [[ ${#A_CPU_DATA[@]} -gt 2 ]];then # if [[ ${#A_CPU_DATA[@]} -gt 2 ]];then
# cpu_core_count="${C1}(1)${C2} " # cpu_core_count="${C1}(1)${C2} "
# else # else
@ -1168,11 +1194,12 @@ print_cpu_data()
# 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}${C2} ${a_cpu_working[0]}" )
if [ "$VERBOSITY_LEVEL" -ge 3 ];then if [ "$VERBOSITY_LEVEL" -ge 3 ];then
cpu_data="$cpu_data${C2} ${a_cpu_working[2]} cache${C2} ${C1}flags${C2} ($CPUFLAGS)${CN}" cpu_data="$cpu_data${C2} ${a_cpu_working[2]} cache${C2} ${C1}flags${C2} ($CPU_FLAGS)${CN}"
fi fi
cpu_data="$cpu_data ${C1}clocked at${C2} ${a_cpu_working[1]} MHz${CN}" cpu_data="$cpu_data ${C1}clocked at${C2} ${a_cpu_working[1]} MHz${CN}"
print_screen_output "$cpu_data" print_screen_output "$cpu_data"
## 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++ )) # for (( i=1; i < ${#A_CPU_DATA[@]}-1; i++ ))
# do # do
# IFS="," # IFS=","
@ -1180,7 +1207,7 @@ print_cpu_data()
# IFS="$OIFS" # IFS="$OIFS"
# cpu_data=$( create_print_line " " "${C1}($(( i + 1 )))${C2} ${a_cpu_working[0]}" ) # cpu_data=$( create_print_line " " "${C1}($(( i + 1 )))${C2} ${a_cpu_working[0]}" )
# if [ "$VERBOSITY_LEVEL" -ge 3 ];then # if [ "$VERBOSITY_LEVEL" -ge 3 ];then
# cpu_data="$cpu_data${C2} ${a_cpu_working[2]} cache${C2} ${C1}flags${C2} ($CPUFLAGS)${CN}" # cpu_data="$cpu_data${C2} ${a_cpu_working[2]} cache${C2} ${C1}flags${C2} ($CPU_FLAGS)${CN}"
# fi # fi
# cpu_data="$cpu_data ${C1}clocked at${C2} ${a_cpu_working[1]} MHz${CN}" # cpu_data="$cpu_data ${C1}clocked at${C2} ${a_cpu_working[1]} MHz${CN}"
# print_screen_output "$cpu_data" # print_screen_output "$cpu_data"
@ -1193,7 +1220,7 @@ print_cpu_data()
print_gfx_data() print_gfx_data()
{ {
local gfx_data='' i='' card_one='Card ' local gfx_data='' i='' card_one='Card '
local screen_resolution=$( get_graphics_res_data ) local screen_resolution="$( get_graphics_res_data )"
local b_is_mesa='false' local b_is_mesa='false'
# set A_GFX_CARD_DATA # set A_GFX_CARD_DATA
@ -1226,9 +1253,6 @@ print_gfx_data()
fi fi
print_screen_output "$gfx_data" print_screen_output "$gfx_data"
# 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)}}')
if [ -z "$glx_renderer" -o -z "$glx_version" ];then if [ -z "$glx_renderer" -o -z "$glx_version" ];then
b_is_mesa='true' b_is_mesa='true'
fi fi
@ -1266,14 +1290,14 @@ print_intro_data()
{ {
local intro_data='' host_name=$( hostname ) local intro_data='' host_name=$( hostname )
local distro=$( get_distro_data ) local distro="$( get_distro_data )"
if [ "$B_SHOW_HOST" == 'true' ];then if [ "$B_SHOW_HOST" == 'true' ];then
intro_data=$( create_print_line "System:" "${C1}Host${C2} $host_name ${C1}running${C2} ${CN}" ) intro_data=$( create_print_line "System:" "${C1}Host${C2} $host_name ${C1}running${C2} ${CN}" )
else else
intro_data=$( create_print_line "System:" "${C1}running${C2} ${CN}" ) intro_data=$( create_print_line "System:" "${C1}running${C2} ${CN}" )
fi fi
intro_data="$intro_data ${C2}$CURRENT_KERNEL ${C1}Distro${C2} $distro ${CN}" intro_data="$intro_data ${C2}$current_kernel ${C1}Distro${C2} $distro ${CN}"
print_screen_output "$intro_data" print_screen_output "$intro_data"
} }
@ -1311,7 +1335,7 @@ print_short_data()
do do
case "$i" in case "$i" in
"$GREEN"|"$WHITE"|"$YELLOW"|"$CYAN") "$GREEN"|"$WHITE"|"$YELLOW"|"$CYAN")
BGBLACK='true' b_background_black='true'
;; ;;
esac esac
done done
@ -1327,7 +1351,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}${CPUMODEL} clocked at ${CPUCLOCK}${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}($HDDUSG)${FL1}${CN}] ${C1}Procs${CN}[${C2}${FL2}${FL1}${processes}${FL1}${CN}]" 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}($HDDUSG)${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}]"
@ -1342,8 +1366,8 @@ print_short_data()
print_system_data() print_system_data()
{ {
local system_data='' local system_data=''
local runlvl=$( runlevel | gawk '{ print $2 }' ) local runlvl="$( runlevel | gawk '{ print $2 }' )"
local memory=$( get_memory_data ) local memory="$( get_memory_data )"
# Some code could look superfluous but BitchX doesn't like lines not ending in a newline. F*&k that bitch! # Some code could look superfluous but BitchX doesn't like lines not ending in a newline. F*&k that bitch!
# long_last=$( echo -ne "${C1}Processes${C2} ${processes}${CN} | ${C1}Uptime${C2} ${up_time}${CN} | ${C1}Memory${C2} ${MEM}${CN}" ) # long_last=$( echo -ne "${C1}Processes${C2} ${processes}${CN} | ${C1}Uptime${C2} ${up_time}${CN} | ${C1}Memory${C2} ${MEM}${CN}" )
@ -1368,8 +1392,10 @@ print_system_data()
print_it_out() 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 processes="$(( $( ps aux | wc -l ) - 1 ))" local processes="$(( $( ps aux | wc -l ) - 1 ))"
local up_time=$( get_uptime ) local cpu_core_count="$( get_cpu_core_count )"
local up_time="$( get_uptime )"
# assemble data for output # assemble data for output
get_cpu_data get_cpu_data
get_hard_drive_data get_hard_drive_data
@ -1421,6 +1447,7 @@ if [ "$KONVI" -eq 1 ];then
done done
IFS="$OIFS" IFS="$OIFS"
fi fi
## leave this for debugging dcop stuff if we get that working
# print_screen_output "DCPORT: $DCPORT" # print_screen_output "DCPORT: $DCPORT"
# print_screen_output "DCSERVER: $DCSERVER" # print_screen_output "DCSERVER: $DCSERVER"
# print_screen_output "DCTARGET: $DCTARGET" # print_screen_output "DCTARGET: $DCTARGET"
@ -1444,4 +1471,6 @@ if [ "$B_RUNNING_IN_SHELL" == 'true' -a "$SCHEME" -gt 0 ];then
echo -n "" echo -n ""
fi fi
exit 0 # weechat's executor plugin forced me to do this, and rightfully so, because else the exit code from the last command is taken.. # weechat's executor plugin forced me to do this, and rightfully so, because else the exit code
# from the last command is taken..
exit 0