added logging for -@ 9 and 10, update version

This commit is contained in:
inxi-svn 2009-05-28 23:08:18 +00:00
parent ede1de3594
commit 4a81c302ad

246
inxi
View file

@ -1,7 +1,7 @@
#!/bin/bash
########################################################################
#### Script Name: inxi
#### version: 1.0.12
#### version: 1.0.13
#### Date: 28 May 2009
########################################################################
#### SPECIAL THANKS
@ -158,9 +158,9 @@ B_CPU_FLAGS_FULL='false'
B_DEBUG_FLOOD='false'
# show extra output data
B_EXTRA_DATA='false'
B_SHOW_DISK='false'
# override certain errors due to currupted data
B_HANDLE_CORRUPT_DATA='false'
B_LOG_COLORS='false'
B_ROOT='false'
# Running in a shell? Defaults to false, and is determined later.
B_RUNNING_IN_SHELL='false'
@ -169,6 +169,7 @@ B_SCRIPT_UP='false'
# Show sound card data
B_SHOW_AUDIO='false'
B_SHOW_CPU='false'
B_SHOW_DISK='false'
# Show full hard disk output
B_SHOW_FULL_HDD='false'
B_SHOW_GRAPHICS='false'
@ -188,6 +189,8 @@ B_SHOW_UUIDS='false'
# triggers various debugging and new option testing
B_TESTING_1='false'
B_TESTING_2='false'
# set to true here for debug logging from script start
B_USE_LOGGING='false'
# Test for X running
B_X_RUNNING='false'
@ -230,6 +233,16 @@ DEBUG_BUFFER_INDEX=0
DEFAULT_SCHEME=2
# Default indentation level
INDENT=10
# logging eval variables, start and end function: Insert to LOGFS LOGFE when debug level == 10
LOGFS_STRING='log_function_data fs $FUNCNAME "$( echo $@ )"'
LOGFE_STRING='log_function_data fe $FUNCNAME'
LOGFS=''
LOGFE=''
# uncomment for debugging from script start
# LOGFS=$LOGFS_STRING
# LOGFE=$LOGFE_STRING
# default to false, no konversation found, 1 is /cmd inxi start, 2 is native konvi script mode
KONVI=0
# NO_CPU_COUNT=0 # Wether or not the string "dual" or similar is found in cpuinfo output. If so, avoid dups.
@ -255,7 +268,11 @@ ORIGINAL_IFS="$IFS"
SEP1='-'
SEP2='~'
### Script names/paths
### Script names/paths - must be non root writable
SCRIPT_DATA_DIR="$HOME/.inxi"
LOG_FILE="$SCRIPT_DATA_DIR/inxi.log"
LOG_FILE_1="$SCRIPT_DATA_DIR/inxi.1.log"
LOG_FILE_2="$SCRIPT_DATA_DIR/inxi.2.log"
SCRIPT_NAME="inxi"
SCRIPT_PATH="" #filled-in in Main
SCRIPT_VERSION_NUMBER="" #filled-in in Main
@ -323,6 +340,7 @@ BAN_LIST_CPU=''
########################################################################
main()
{
eval $LOGFS
# first init function must be set first for colors etc. Remember, no debugger
# stuff works on this function unless you set the debugging flag manually.
# Debugging flag -@ [number] will not work until get_parameters runs.
@ -342,9 +360,9 @@ main()
if [[ -s /etc/$SCRIPT_NAME.conf ]];then
source /etc/$SCRIPT_NAME.conf
fi
# Source user config overrides
if [[ -s $HOME/.$SCRIPT_NAME ]];then
source $HOME/.$SCRIPT_NAME
# Source user config overrides, ~/.inxi/inxi.conf
if [[ -s $HOME/.$SCRIPT_NAME/$SCRIPT_NAME.conf ]];then
source $HOME/.$SCRIPT_NAME/$SCRIPT_NAME.conf
fi
## this needs to run before the KONVI stuff is set below
@ -394,7 +412,7 @@ main()
if [[ $B_RUNNING_IN_SHELL == 'true' && $SCHEME -gt 0 ]];then
echo -n ""
fi
eval $LOGFE
# 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
@ -411,6 +429,7 @@ main()
# No args taken.
initialize_script_data()
{
eval $LOGFS
local path='' sys_path='' added_path='' b_path_found=''
# Extra path variable to make execute failures less likely, merged below
local extra_paths="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin"
@ -502,11 +521,13 @@ initialize_script_data()
if [[ $( whoami ) == 'root' ]];then
B_ROOT='true'
fi
eval $LOGFE
}
# No args taken.
check_script_suggested_apps()
{
eval $LOGFS
local bash_array_test=( "one" "two" )
# check for array ability of bash, this is only good for the warning at this time
@ -520,12 +541,14 @@ check_script_suggested_apps()
else
script_debugger "Suggestion: update to Bash v3.1 for optimal inxi output"
fi
eval $LOGFE
}
# Determine if any of the absolutely necessary tools are absent
# No args taken.
check_script_depends()
{
eval $LOGFS
local app_name='' app_data=''
# bc removed from deps for now
local depends="df free gawk grep hostname lspci ps readlink tr uname uptime wc"
@ -552,6 +575,7 @@ check_script_depends()
error_handler 5 "$app_name"
fi
done
eval $LOGFE
}
## note: this is now running inside each gawk sequence directly to avoid exiting gawk
@ -561,6 +585,7 @@ check_script_depends()
# args: $1 - BAN_LIST_NORMAL/BAN_LIST_CPU; $2 - string to sanitize
sanitize_characters()
{
eval $LOGFS
# Cannot use strong quotes to unquote a string with pipes in it!
# bash will interpret the |'s as usual and try to run a subshell!
# Using weak quotes instead, or use '"..."'
@ -574,12 +599,14 @@ sanitize_characters()
gsub(/^ +| +$/,\"\") ## (pipe char) with (nothing)
print ## prints (returns) cleaned input
}"
eval $LOGFE
}
# Filter boilerplate & buzzwords.
# args: $1 - quoted: "$@" array of ban terms
make_ban_lists()
{
eval $LOGFS
local ban_list=''
# Iterate over $@
## note: this is a weird, non-intuitive method, needs some documentation or rewriting
@ -599,6 +626,7 @@ make_ban_lists()
done
echo "$ban_list"
eval $LOGFS
}
# make_ban_lists "${A_CPU_BANS[@]}";exit
@ -606,6 +634,7 @@ make_ban_lists()
# args: $1 = <scheme number>|<"none">
set_color_scheme()
{
eval $LOGFS
local i='' script_colors='' color_codes=''
if [[ $1 -ge ${#A_COLOR_SCHEMES[@]} ]];then
@ -630,6 +659,7 @@ set_color_scheme()
C2="${!script_colors[1]}"
CN="${!script_colors[2]}"
# ((COLOR_SCHEME++)) ## note: why is this? ##
eval $LOGFE
}
########################################################################
@ -644,6 +674,7 @@ set_color_scheme()
# args: $1 - error number; $2 - optional, extra information
error_handler()
{
eval $LOGFS
local error_message=''
# assemble the error message
@ -679,6 +710,7 @@ error_handler()
esac
# then print it and exit
print_screen_output "Error $1: $error_message"
eval $LOGFE
exit $1
}
@ -687,6 +719,7 @@ error_handler()
# args: $1 - $@ debugging string text
script_debugger()
{
eval $LOGFS
if [[ $B_SCRIPT_UP == 'true' ]];then
# only return if debugger is off and no pre start up errors have occured
if [[ $DEBUG -eq 0 && $DEBUG_BUFFER_INDEX -eq 0 ]];then
@ -714,12 +747,73 @@ script_debugger()
(( DEBUG_BUFFER_INDEX++ ))
fi
fi
eval $LOGFE
}
# NOTE: no logging available until get_parameters is run, since that's what sets logging
# in order to trigger earlier logging manually set B_USE_LOGGING to true in top variables.
# $1 alone: logs data; $2 with or without $3 logs func start/end.
# $1 type (fs/fe) or logged data; [$2 is $FUNCNAME; [$3 - function args]]
log_function_data()
{
if [ "$B_USE_LOGGING" == 'true' ];then
local logged_data='' spacer=" "
case $1 in
fs)
logged_data="Function: $2 - Primary: Start"
if [ -n "$3" ];then
logged_data="$logged_data\n${spacer}Args: $3"
fi
spacer=''
;;
fe)
logged_data="Function: $2 - Primary: End"
spacer=''
;;
*)
logged_data="$1"
;;
esac
# Create any required line breaks and strip out escape color code, either ansi (case 1)or irc (case 2).
# This pattern doesn't work for irc colors, if we need that someone can figure it out
if [[ $B_LOG_COLORS != 'true' ]];then
echo -e "${spacer}$logged_data" | sed 's/\x1b\[[0-9]\{1,2\}\(;[0-9]\{1,2\}\)\{0,2\}m//g' >> $LOG_FILE
else
echo -e "${spacer}$logged_data" >> $LOG_FILE
fi
fi
}
# called in the initial -@ 10 script args setting so we can get logging as soon as possible
# will have max 3 files, inxi.log, inxi.1.log, inxi.2.log
create_rotate_logfiles()
{
if [[ ! -d $SCRIPT_DATA_DIR ]];then
mkdir $SCRIPT_DATA_DIR
fi
# do the rotation if logfile exists
if [[ -f $LOG_FILE ]];then
# copy if present second to third
if [[ -f $LOG_FILE_1 ]];then
mv -f $LOG_FILE_1 $LOG_FILE_2
fi
# then copy initial to second
mv -f $LOG_FILE $LOG_FILE_1
fi
# now create the logfile
touch $LOG_FILE
# and echo the start data
echo "=========================================================" >> $LOG_FILE
echo "START $SCRIPT_NAME LOGGING:" >> $LOG_FILE
echo "Script started: $( date +%Y-%m-%d-%H:%M:%S )" >> $LOG_FILE
echo "=========================================================" >> $LOG_FILE
}
# args: $1 - download url, not including file name; $2 - string to print out
# note that $1 must end in / to properly construct the url path
script_self_updater()
{
eval $LOGFS
local wget_error=0
print_screen_output "Starting $SCRIPT_NAME self updater."
print_screen_output "Currently running $SCRIPT_NAME version number: $SCRIPT_VERSION_NUMBER"
@ -746,6 +840,7 @@ script_self_updater()
error_handler 12 "$1"
fi
fi
eval $LOGFS
}
#### -------------------------------------------------------------------
@ -757,6 +852,7 @@ script_self_updater()
# note: dcop does not seem able to handle \n so that's being stripped out and replaced with space.
print_screen_output()
{
eval $LOGFS
# the double quotes are needed to avoid losing whitespace in data when certain output types are used
local print_data="$( echo -e "$1" )"
@ -786,19 +882,23 @@ print_screen_output()
# the -n is needed to avoid double spacing of output in terminal
echo -ne "$print_data\n"
fi
eval $LOGFE
}
## this handles all verbose line construction with indentation/line starter
## args: $1 - null (, actually: " ") or line starter; $2 - line content
create_print_line()
{
eval $LOGFS
printf "${C1}%-${INDENT}s${C2} %s" "$1" "$2"
eval $LOGFE
}
# this removes newline and pipes.
# args: $1 - string to clean
remove_erroneous_chars()
{
eval $LOGFS
## RS is input record separator
## gsub is substitute;
gawk '
@ -814,6 +914,7 @@ remove_erroneous_chars()
gsub(/^ +| +$/, "") ## (pipe char) with (nothing)
printf $0
}' "$1" ## prints (returns) cleaned input
eval $LOGFE
}
#### -------------------------------------------------------------------
@ -824,6 +925,7 @@ remove_erroneous_chars()
# args: $1 - full script startup args: $@
get_parameters()
{
eval $LOGFS
local opt='' wget_test='' update_flags='U!:'
local use_short='true' # this is needed to trigger short output, every v/d/F/line trigger sets this false
@ -931,6 +1033,17 @@ get_parameters()
@) if [[ -n $( egrep "^([1-9]|10)$" <<< $OPTARG ) ]];then
DEBUG=$OPTARG
exec 2>&1
# switch on logging only for -@ 10
if [[ $OPTARG -ge 9 ]];then
if [[ $OPTARG -eq 10 ]];then
B_LOG_COLORS='true'
fi
B_USE_LOGGING='true'
# pack the logging data for evals function start/end
LOGFS=$LOGFS_STRING
LOGFE=$LOGFE_STRING
create_rotate_logfiles # create/rotate logfiles before we do anything else
fi
else
error_handler 9 "$OPTARG"
fi
@ -982,6 +1095,7 @@ get_parameters()
if [[ $use_short == 'true' ]];then
B_SHOW_SHORT_OUTPUT='true'
fi
eval $LOGFE
}
## print out help menu, not including Testing or Debugger stuff because it's not needed
@ -1090,6 +1204,7 @@ print_version_info()
# Determine where inxi was run from, set IRC_CLIENT and IRC_CLIENT_VERSION
get_start_client()
{
eval $LOGFS
local irc_client_path='' irc_client_path_lower='' non_native_konvi='' i=''
local b_non_native_app='false' pppid='' app_working_name=''
@ -1324,6 +1439,8 @@ get_start_client()
IRC_CLIENT="PPID=\"$PPID\" - empty?"
unset IRC_CLIENT_VERSION
fi
log_function_data "IRC_CLIENT: $IRC_CLIENT :: IRC_CLIENT_VERSION: $IRC_CLIENT_VERSION :: PPID: $PPID"
eval $LOGFE
}
# This needs some cleanup and comments, not quite understanding what is happening, although generally output is known
@ -1331,6 +1448,7 @@ get_start_client()
# args: $1 - $PPID
get_cmdline()
{
eval $LOGFS
local i=0 ppid=$1
if [[ ! -e /proc/$ppid/cmdline ]];then
@ -1353,6 +1471,8 @@ get_cmdline()
fi
fi
CMDL_MAX=$i
log_function_data "CMDL_MAX: $CMDL_MAX"
eval $LOGFE
}
#### -------------------------------------------------------------------
@ -1361,6 +1481,7 @@ get_cmdline()
## create array of sound cards installed on system, and if found, use asound data as well
get_audio_data()
{
eval $LOGFS
local i='' alsa_data='' alsa_driver='' device_count=''
local usb_proc_file='' array_count='' usb_id='' usb_data=''
@ -1505,10 +1626,13 @@ get_audio_data()
if [[ ${#A_AUDIO_DATA[@]} -eq 0 ]];then
A_AUDIO_DATA[0]='Failed to Detect Sound Card!'
fi
log_function_data "A_AUDIO_DATA: ${A_AUDIO_DATA[@]}"
eval $LOGFE
}
get_audio_alsa_data()
{
eval $LOGFS
local alsa_data=''
# now we'll get the alsa data if the file exists
@ -1530,12 +1654,15 @@ get_audio_alsa_data()
}' $DIR_ASOUND_VERSION )
fi
echo "$alsa_data"
log_function_data "alsa_data: $alsa_data"
eval $LOGFE
}
## create A_CPU_CORE_DATA, currently with two values: integer core count; core string text
## return value cpu core count string, this helps resolve the multi redundant lines of old style output
get_cpu_core_count()
{
eval $LOGFS
if [[ $B_CPUINFO == 'true' ]]; then
# load the A_CPU_TYPE_PCNT_CCNT core data array
get_cpu_ht_multicore_smp_data
@ -1563,11 +1690,14 @@ get_cpu_core_count()
# A_CPU_CORE_DATA=( "$cpu_core_count" "$cpu_alpha_count Core$cpu_type" )
A_CPU_CORE_DATA=( "$cpu_physical_count" "$cpu_alpha_count" "$cpu_type" "$cpu_core_count" )
fi
log_function_data "A_CPU_CORE_DATA: ${A_CPU_CORE_DATA[@]}"
eval $LOGFE
}
## main cpu data collector
get_cpu_data()
{
eval $LOGFS
local i='' j='' cpu_array_nu='' a_cpu_working='' multi_cpu='' bits=''
if [[ $B_CPUINFO == 'true' ]];then
@ -1646,12 +1776,15 @@ get_cpu_data()
fi
IFS="$ORIGINAL_IFS"
log_function_data "A_CPU_DATA: ${A_CPU_DATA[@]}"
eval $LOGFE
# echo getMainCpu: ${[@]}
}
## this is for counting processors and finding HT types
get_cpu_ht_multicore_smp_data()
{
eval $LOGFS
# in /proc/cpuinfo
# algorithm
# if > 1 processor && processor id (physical id) == core id then Hyperthreaded (HT)
@ -1733,12 +1866,15 @@ get_cpu_ht_multicore_smp_data()
' $DIR_CPUINFO
) )
fi
log_function_data "A_CPU_TYPE_PCNT_CCNT: ${A_CPU_TYPE_PCNT_CCNT[@]}"
eval $LOGFE
}
# for more on distro id, please reference this python thread: http://bugs.python.org/issue1322
## return distro name/id if found
get_distro_data()
{
eval $LOGFS
local i='' j='' distro='' distro_file='' a_distro_glob=''
# get the wild carded array of release/version /etc files if present
@ -1829,11 +1965,14 @@ get_distro_data()
fi
echo "$distro"
log_function_data "distro: $distro"
eval $LOGFE
}
# args: $1 - optional, app, uses the app test, not being used now
get_distro_lsb_data()
{
eval $LOGFS
local distro=''
if [[ $B_LSB_DIR == 'true' ]] && [[ $1 != 'app' ]];then
@ -1890,11 +2029,14 @@ get_distro_lsb_data()
# fi
echo $distro
log_function_data "distro: $distro"
eval $LOGFE
}
## create array of gfx cards installed on system
get_graphics_card_data()
{
eval $LOGFS
local i=''
IFS=$'\n'
@ -1921,11 +2063,14 @@ get_graphics_card_data()
# GFXMEM is UNUSED at the moment, because it shows AGP aperture size, which is not necessarily equal to GFX memory..
# GFXMEM="size=[$(echo "$Lspci_Data" | 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]"
log_function_data "A_GFX_CARD_DATA: ${A_GFX_CARD_DATA[@]}"
eval $LOGFE
}
## create array of glx data
get_graphics_glx_data()
{
eval $LOGFS
if [[ $B_X_RUNNING == 'true' && $B_ROOT != 'true' ]];then
IFS=$'\n'
A_GLX_DATA=( $( glxinfo | gawk -F ': ' '
@ -1978,11 +2123,14 @@ get_graphics_glx_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)}}')
fi
log_function_data "A_GLX_DATA: ${A_GLX_DATA[@]}"
eval $LOGFE
}
## return screen resolution / tty resolution
get_graphics_res_data()
{
eval $LOGFS
local screen_resolution=''
if [[ $B_X_RUNNING == 'true' && $B_ROOT != 'true' ]];then
@ -2014,11 +2162,14 @@ get_graphics_res_data()
}' )
fi
echo "$screen_resolution"
log_function_data "screen_resolution: $screen_resolution"
eval $LOGFE
}
## for possible future data, not currently used
get_graphics_agp_data()
{
eval $LOGFS
local agp_module=''
if [[ B_MODULES_DIR == 'true' ]];then
@ -2028,11 +2179,14 @@ get_graphics_agp_data()
print(gensub(/(.*)_agp.*/,"\\1","g",$1))
}' $DIR_MODULES )
fi
log_function_data "agp_module: $agp_module"
eval $LOGFE
}
## create array of x vendor/version data
get_graphics_x_data()
{
eval $LOGFS
local x_vendor='' x_version=''
if [[ $B_X_RUNNING == 'true' && $B_ROOT != 'true' ]];then
@ -2073,11 +2227,14 @@ get_graphics_x_data()
#This method could be used in the future to detect X when X is not running,
#however currently inxi ignores X checks when X is not found.
fi
log_function_data "A_X_DATA: ${A_X_DATA[@]}"
eval $LOGFE
}
# this gets just the raw data, total space/percent used and disk/name/per disk capacity
get_hdd_data_basic()
{
eval $LOGFS
local hdd_used=''
hdd_used=$( df --exclude-type=aufs --exclude-type=tmpfs --exclude-type=iso9660 | gawk '
@ -2112,7 +2269,7 @@ get_hdd_data_basic()
if [[ -z $hdd_used ]];then
hdd_used='na'
fi
log_function_data "hdd_used: $hdd_used"
# create the initial array strings:
# disk-dev, capacity, name, usb or not
# final item is the total of the disk
@ -2157,11 +2314,14 @@ get_hdd_data_basic()
) )
fi
IFS="$ORIGINAL_IFS"
log_function_data "A_HDD_DATA: ${A_HDD_DATA[@]}"
eval $LOGFE
}
## fills out the A_HDD_DATA array with disk names
get_hard_drive_data_advanced()
{
eval $LOGFS
local a_temp_working='' a_temp_scsi='' temp_holder='' temp_name='' i='' j=''
local sd_ls_by_id='' ls_disk_by_id=''
@ -2272,19 +2432,27 @@ get_hard_drive_data_advanced()
done
unset ls_disk_by_id # and then let's dump the data we don't need
fi
log_function_data "A_HDD_DATA: ${A_HDD_DATA[@]}"
eval $LOGFE
}
get_lspci_data()
{
echo "$( lspci -v | gawk '{
eval $LOGFS
local lspci_data="$( lspci -v | gawk '{
gsub(/\(prog-if[^)]*\)/,"")
print
}' )"
echo "$lspci_data"
log_function_data "lspci_data: $lspci_data"
eval $LOGFE
}
## return memory used/installed
get_memory_data()
{
eval $LOGFS
local memory=''
memory=$( gawk '
@ -2300,11 +2468,14 @@ get_memory_data()
}' $DIR_MEMINFO )
echo "$memory"
log_function_data "memory: $memory"
eval $LOGFE
}
# process and return module version data
get_module_version_number()
{
eval $LOGFS
local module_version=''
if [[ -n $( which modinfo ) ]];then
@ -2322,11 +2493,14 @@ get_module_version_number()
fi
echo "$module_version"
log_function_data "module_version: $module_version"
eval $LOGFE
}
## create array of network cards
get_networking_data()
{
eval $LOGFS
IFS=$'\n'
A_NETWORK_DATA=( $( echo "$Lspci_Data" | gawk '
BEGIN {
@ -2393,10 +2567,13 @@ get_networking_data()
}
}') )
IFS="$ORIGINAL_IFS"
log_function_data "A_NETWORK_DATA: ${A_NETWORK_DATA[@]}"
eval $LOGFE
}
get_networking_wan_ip_data()
{
eval $LOGFS
local ip=''
# get ip using wget redirect to stdout. This is a clean, text only IP output url.
@ -2409,10 +2586,13 @@ get_networking_wan_ip_data()
ip='None Detected!'
fi
echo "$ip"
log_function_data "ip: $ip"
eval $LOGFE
}
get_networking_local_ip_data()
{
eval $LOGFS
if [[ $B_IFCONFIG == 'true' ]];then
IFS=$'\n'
A_INTERFACES_DATA=( $( $DIR_IFCONFIG | gawk '
@ -2454,10 +2634,13 @@ get_networking_local_ip_data()
}') )
IFS="$ORIGINAL_IFS"
fi
log_function_data "A_INTERFACES_DATA: ${A_INTERFACES_DATA[@]}"
eval $LOGFE
}
get_partition_data()
{
eval $LOGFS
#local excluded_file_types='--exclude-type=aufs --exclude-type=tmpfs --exclude-type=iso9660'
# df doesn't seem to work in script with variables like at the command line
@ -2525,11 +2708,14 @@ get_partition_data()
if [[ $B_SHOW_LABELS == 'true' || $B_SHOW_UUIDS == 'true' ]];then
get_partition_data_advanced
fi
log_function_data "A_PARTITION_DATA: ${A_PARTITION_DATA[@]}"
eval $LOGFE
}
# first get the locations of the mount points for label/uuid detection
get_partition_data_advanced()
{
eval $LOGFS
local a_partition_working='' dev_partition_data=''
local dev_disk_label='' dev_disk_uuid='' dev_item='' dev_label='' dev_uuid=''
local mount_point=''
@ -2656,16 +2842,22 @@ get_partition_data_advanced()
IFS="$ORIGINAL_IFS"
done
fi
log_function_data "A_PARTITION_DATA: ${A_PARTITION_DATA[@]}"
eval $LOGFE
}
## return uptime string
get_uptime()
{
eval $LOGFS
## note: removing gsub(/ /,"",a); to get get space back in there, goes right before print a
echo $( uptime | gawk '{
local uptime_value="$( uptime | gawk '{
a = gensub(/^.*up *([^,]*).*$/,"\\1","g",$0)
print a
}' )
}' )"
echo "$uptime_value"
log_function_data "uptime_value: $uptime_value"
eval $LOGFE
}
#### -------------------------------------------------------------------
@ -2676,6 +2868,7 @@ get_uptime()
# args: $1 - string to handle; $2 - cpu count
calculate_multicore_data()
{
eval $LOGFS
local string_number=$1 string_data=''
if [[ -n $( egrep -i '( mb| kb)' <<< $1 ) ]];then
@ -2695,12 +2888,15 @@ calculate_multicore_data()
string_number="$string_number "
fi
echo "$string_number$string_data"
log_function_data "string_numberstring_data: $string_number$string_data"
eval $LOGFE
}
# prints out shortened list of flags, the main ones of interest
# args: $1 - string of cpu flags to process
process_cpu_flags()
{
eval $LOGFS
local cpu_flags="$1"
# nx = AMD stack protection extensions
@ -2748,6 +2944,8 @@ process_cpu_flags()
cpu_flags="-"
fi
echo "$cpu_flags"
log_function_data "cpu_flags: $cpu_flags"
eval $LOGFE
}
#### -------------------------------------------------------------------
@ -2758,6 +2956,7 @@ process_cpu_flags()
## main function to print out, master for all sub print functions.
print_it_out()
{
eval $LOGFS
# note that print_it_out passes local variable values on to its children,
# and in some cases, their children, with Lspci_Data
local Lspci_Data='' # only for verbose
@ -2791,6 +2990,7 @@ print_it_out()
print_info_data
fi
fi
eval $LOGFE
}
#### SHORT OUTPUT PRINT FUNCTION, ie, verbosity 0
@ -2798,6 +2998,7 @@ print_it_out()
# these will also be loaded in each relevant print function for long output
print_short_data()
{
eval $LOGFS
local current_kernel=$( uname -rm ) # | gawk '{print $1,$3,$(NF-1)}' )
local processes="$(( $( ps aux | wc -l ) - 1 ))"
local short_data='' i='' b_background_black='false'
@ -2878,6 +3079,7 @@ print_short_data()
short_data="${short_data} $NORMAL"
fi
print_screen_output "$short_data"
eval $LOGFE
}
#### LINE ITEM PRINT FUNCTIONS
@ -2885,6 +3087,7 @@ print_short_data()
# print sound card data
print_audio_data()
{
eval $LOGFS
local i='' card_one='Card-1' audio_data='' a_audio_data='' port_data=''
local a_audio_working='' alsa_driver='' alsa_data='' port_plural='' module_version=''
# set A_AUDIO_DATA and get alsa data
@ -2957,10 +3160,12 @@ print_audio_data()
print_screen_output "$audio_data"
fi
fi
eval $LOGFE
}
print_cpu_data()
{
eval $LOGFS
local cpu_data='' i='' cpu_clock_speed='' cpu_multi_clock_data=''
local bmip_data='' cpu_cache='' cpu_vendor='' cpu_flags=''
@ -3062,12 +3267,14 @@ print_cpu_data()
if [[ $B_CPU_FLAGS_FULL == 'true' ]];then
print_cpu_flags_full "${a_cpu_working[3]}"
fi
eval $LOGFE
}
# takes list of all flags, split them and prints x per line
# args: $1 - cpu flag string
print_cpu_flags_full()
{
eval $LOGFS
local cpu_flags_full="$1" a_cpu_flags='' line_starter=''
local i=0 counter=0 max_length=18 max_length_add=18 flag='' flag_data=''
@ -3092,10 +3299,12 @@ print_cpu_flags_full()
flag_data=$( create_print_line " " "$line_starter${a_cpu_flags[$i]}" )
print_screen_output "$flag_data"
done
eval $LOGFE
}
print_gfx_data()
{
eval $LOGFS
local gfx_data='' i='' card_one='Card' root_alert=''
local screen_resolution="$( get_graphics_res_data )"
local b_is_mesa='false' display_full_string=''
@ -3165,10 +3374,12 @@ print_gfx_data()
fi
print_screen_output "$gfx_data"
fi
eval $LOGFE
}
print_hard_disk_data()
{
eval $LOGFS
local hdd_data='' hdd_data_2='' a_hdd_working=''
local dev_data='' size_data='' hdd_model='' hdd_model_2='' hdd_model_3='' usb_data=''
@ -3225,10 +3436,12 @@ print_hard_disk_data()
if [[ -n $hdd_model_2 ]];then
print_screen_output "$hdd_data_2"
fi
eval $LOGFE
}
print_info_data()
{
eval $LOGFS
local suggested_app="runlevel"
local info_data=''
local runlvl=''
@ -3257,11 +3470,13 @@ print_info_data()
info_data="${info_data} ${NORMAL}"
fi
print_screen_output "$info_data"
eval $LOGFE
}
# args: $1 - module name (could be > 1, so loop it )
print_module_version()
{
eval $LOGFS
local module_versions='' module='' version=''
for module in $1
@ -3275,10 +3490,12 @@ print_module_version()
if [[ -n $module_versions ]];then
echo " ${C1}v:${C2}$module_versions"
fi
eval $LOGFE
}
print_networking_data()
{
eval $LOGFS
local i='' card_one='Card-1' network_data='' a_network_working='' port_data='' driver_data=''
local card_string='' port_plural='' module_version=''
# set A_NETWORK_DATA
@ -3340,10 +3557,12 @@ print_networking_data()
if [[ $B_SHOW_IP == 'true' ]];then
print_networking_ip_data
fi
eval $LOGFE
}
print_networking_ip_data()
{
eval $LOGFS
local ip=$( get_networking_wan_ip_data )
local ip_data='' a_interfaces_working='' interfaces='' interfaces_2='' i=''
@ -3378,10 +3597,12 @@ print_networking_ip_data()
interfaces_2=$( create_print_line " " "$interfaces_2" )
print_screen_output "$interfaces_2"
fi
eval $LOGFE
}
print_partition_data()
{
eval $LOGFS
local a_partition_working='' partition_used='' partition_data=''
local counter=0 line_max=160 i=0 a_partition_data='' line_starter=''
local partitionIdClean='' part_dev='' full_dev='' part_label='' full_label=''
@ -3468,10 +3689,12 @@ print_partition_data()
partition_data=$( create_print_line "$line_starter" "${a_partition_data[$i]}" )
print_screen_output "$partition_data"
done
eval $LOGFE
}
print_system_data()
{
eval $LOGFS
local system_data='' bits=''
local host_name=$( hostname )
local current_kernel=$( uname -rm ) # | gawk '{print $1,$3,$(NF-1)}' )
@ -3490,6 +3713,7 @@ print_system_data()
fi
system_data="$system_data $current_kernel $bits ${C1}Distro${C2} $distro"
print_screen_output "$system_data"
eval $LOGFE
}
########################################################################