mirror of
https://github.com/smxi/inxi.git
synced 2024-11-17 00:31:19 +00:00
added logging for -@ 9 and 10, update version
This commit is contained in:
parent
ede1de3594
commit
4a81c302ad
246
inxi
246
inxi
|
@ -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 "[0m"
|
||||
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
|
||||
}
|
||||
|
||||
########################################################################
|
||||
|
|
Loading…
Reference in a new issue