mirror of
https://github.com/smxi/inxi.git
synced 2025-01-18 16:37:49 +00:00
still some restructures, these are mostly intalling booleans, and vars for directories and files. User input requested before release, also some testing needs to be done. I'm uploading to branch two for testing on multiplatforms.
This commit is contained in:
parent
98dbacb935
commit
e5c8ca01fa
136
inxi
136
inxi
|
@ -159,13 +159,17 @@ B_PROC='false'
|
|||
B_CPUINFO='false'
|
||||
B_MEMINFO='false'
|
||||
B_ASOUND_CARDS='false'
|
||||
B_ASOUND_VERSION='false'
|
||||
B_BASH_ARRAY='false'
|
||||
B_IFCONFIG='false'
|
||||
B_LSB_DIR='false'
|
||||
|
||||
### Directory's used when present
|
||||
CPUINFO='/proc/cpuinfo'
|
||||
MEMINFO='/proc/meminfo'
|
||||
ASOUND_DEVICE='/proc/asound/cards'
|
||||
ASOUND_VERSION='/proc/asound/version'
|
||||
LSB_RELEASE='/etc/lsb-release'
|
||||
|
||||
### Variable initializations: constants
|
||||
DCOPOBJ="default"
|
||||
|
@ -348,21 +352,37 @@ exit 0
|
|||
# some apps are used for extended functions
|
||||
init()
|
||||
{
|
||||
if [[ -e /proc/ ]];then
|
||||
if [[ -d "/proc/" ]];then
|
||||
B_PROC='true'
|
||||
else
|
||||
error_handler 6
|
||||
fi
|
||||
|
||||
if [[ -e $CPUINFO ]]; then
|
||||
if [[ -e "$CPUINFO" ]]; then
|
||||
B_CPUINFO='true'
|
||||
fi
|
||||
|
||||
if [[ -e $MEMINFO ]];then
|
||||
if [[ -e "$MEMINFO" ]];then
|
||||
B_MEMINFO='true'
|
||||
fi
|
||||
|
||||
if [[ -e ASOUND_DEVICE ]];then
|
||||
if [[ -e "$ASOUND_DEVICE" ]];then
|
||||
B_ASOUND_CARDS='true'
|
||||
fi
|
||||
|
||||
if [[ -e "$ASOUND_VERSION" ]];then
|
||||
B_ASOUND_VERSION='true'
|
||||
fi
|
||||
|
||||
if [[ -f "$LSB_RELEASE" ]];then
|
||||
B_LSB_DIR='true'
|
||||
fi
|
||||
|
||||
# lack of ifconfig will throw an error only upon it's usage
|
||||
if [[ -x ifconfig ]];then
|
||||
B_IFCONFIG='true'
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
check_script_suggested_apps()
|
||||
|
@ -381,10 +401,7 @@ check_script_suggested_apps()
|
|||
script_debugger "Suggestion: Bash v3.1 or above is needed for array usage"
|
||||
fi
|
||||
|
||||
# lack of ifconfig will throw an error only upon it's usage
|
||||
if [[ -x ifconfig ]];then
|
||||
B_IFCONFIG='true'
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
# Determine if any of the absolutely necessary tools are absent
|
||||
|
@ -394,9 +411,6 @@ check_script_depends()
|
|||
# bc removed from deps for now
|
||||
local depends="df free gawk grep hostname lspci ps readlink tr uname uptime wc"
|
||||
|
||||
if [[ ! -d /proc/ ]];then
|
||||
error_handler 6
|
||||
fi
|
||||
if [[ $B_X_RUNNING == 'true' ]];then
|
||||
for app_name in xrandr xdpyinfo glxinfo
|
||||
do
|
||||
|
@ -476,31 +490,31 @@ error_handler()
|
|||
script_debugger()
|
||||
{
|
||||
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
|
||||
return 0
|
||||
# print out the stored debugging information if errors occured
|
||||
elif [[ $DEBUG_BUFFER_INDEX -gt 0 ]];then
|
||||
for (( DEBUG_BUFFER_INDEX=0; DEBUG_BUFFER_INDEX < ${#A_DEBUG_BUFFER[@]}; DEBUG_BUFFER_INDEX++ ))
|
||||
do
|
||||
print_screen_output "${A_DEBUG_BUFFER[$DEBUG_BUFFER_INDEX]}"
|
||||
done
|
||||
DEBUG_BUFFER_INDEX=0
|
||||
fi
|
||||
# or print out normal debugger messages if debugger is on
|
||||
if [[ $DEBUG -gt 0 ]];then
|
||||
print_screen_output "$1"
|
||||
fi
|
||||
# only return if debugger is off and no pre start up errors have occured
|
||||
if [[ $DEBUG -eq 0 && $DEBUG_BUFFER_INDEX -eq 0 ]];then
|
||||
return 0
|
||||
# print out the stored debugging information if errors occured
|
||||
elif [[ $DEBUG_BUFFER_INDEX -gt 0 ]];then
|
||||
for (( DEBUG_BUFFER_INDEX=0; DEBUG_BUFFER_INDEX < ${#A_DEBUG_BUFFER[@]}; DEBUG_BUFFER_INDEX++ ))
|
||||
do
|
||||
print_screen_output "${A_DEBUG_BUFFER[$DEBUG_BUFFER_INDEX]}"
|
||||
done
|
||||
DEBUG_BUFFER_INDEX=0
|
||||
fi
|
||||
# or print out normal debugger messages if debugger is on
|
||||
if [[ $DEBUG -gt 0 ]];then
|
||||
print_screen_output "$1"
|
||||
fi
|
||||
else
|
||||
if [[ $B_DEBUG_FLOOD == 'true' && $DEBUG_BUFFER_INDEX -gt 10 ]];then
|
||||
error_handler 2
|
||||
# this case stores the data for later printout, will print out only
|
||||
# at B_SCRIPT_UP == 'true' if array index > 0
|
||||
else
|
||||
A_DEBUG_BUFFER[$DEBUG_BUFFER_INDEX]="$1"
|
||||
# increment count for next pre script up debugging error
|
||||
(( DEBUG_BUFFER_INDEX++ ))
|
||||
fi
|
||||
if [[ $B_DEBUG_FLOOD == 'true' && $DEBUG_BUFFER_INDEX -gt 10 ]];then
|
||||
error_handler 2
|
||||
# this case stores the data for later printout, will print out only
|
||||
# at B_SCRIPT_UP == 'true' if array index > 0
|
||||
else
|
||||
A_DEBUG_BUFFER[$DEBUG_BUFFER_INDEX]="$1"
|
||||
# increment count for next pre script up debugging error
|
||||
(( DEBUG_BUFFER_INDEX++ ))
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
|
@ -859,8 +873,8 @@ show_options()
|
|||
print_screen_output "-h - this help menu."
|
||||
if [[ $B_ALLOW_UPDATE == 'true' ]];then
|
||||
print_screen_output "-U Auto-update script. Note: if you installed as root, you"
|
||||
print_screen_output " must be root to update, otherwise user is fine."
|
||||
fi
|
||||
print_screen_output " must be root to update, otherwise user is fine."
|
||||
print_screen_output "-V $SCRIPT_NAME version information. Prints information then exits."
|
||||
print_screen_output "-% Overrides defective or corrupted data."
|
||||
print_screen_output "-@ Triggers debugger output. Requires debugging level 1-10."
|
||||
|
@ -1182,7 +1196,7 @@ get_audio_data()
|
|||
IFS=$'\n'
|
||||
# this first step handles the drivers for cases where the second step fails to find one
|
||||
device_count=$( egrep -ic '(multimedia audio controller|audio device)' <<< "$lspci_data" )
|
||||
if [[ $device_count -eq 1 && -f /proc/asound/cards ]];then
|
||||
if [[ $device_count -eq 1 && -f $ASOUND_DEVICE ]];then
|
||||
alsa_driver=$( gawk -F ']: ' '
|
||||
{ IGNORECASE=1 }
|
||||
# filtering out modems and usb devices like webcams, this might get a
|
||||
|
@ -1193,7 +1207,7 @@ get_audio_data()
|
|||
if ( driver != "" ){
|
||||
print driver
|
||||
}
|
||||
}' /proc/asound/cards )
|
||||
}' $ASOUND_DEVICE )
|
||||
fi
|
||||
# this is to safeguard against line breaks from results > 1, which if inserted into following
|
||||
# array will create a false array entry. This is a hack, not a permanent solution.
|
||||
|
@ -1269,7 +1283,7 @@ get_audio_data()
|
|||
}') )
|
||||
|
||||
# in case of failure of first check do this instead
|
||||
if [[ ${#A_AUDIO_DATA[@]} -eq 0 && -f /proc/asound/cards ]];then
|
||||
if [[ ${#A_AUDIO_DATA[@]} -eq 0 && -f $ASOUND_DEVICE ]];then
|
||||
A_AUDIO_DATA=( $( gawk -F ']: ' '
|
||||
{ IGNORECASE=1 }
|
||||
$1 !~ /modem/ && $2 !~ /modem/ {
|
||||
|
@ -1278,7 +1292,7 @@ get_audio_data()
|
|||
if ( card != "" ){
|
||||
print card","driver
|
||||
}
|
||||
}' /proc/asound/cards ) )
|
||||
}' $ASOUND_DEVICE ) )
|
||||
fi
|
||||
IFS="$ORIGINAL_IFS"
|
||||
|
||||
|
@ -1293,7 +1307,7 @@ get_audio_alsa_data()
|
|||
local alsa_data=''
|
||||
|
||||
# now we'll get the alsa data if the file exists
|
||||
if [[ -e /proc/asound/version ]];then
|
||||
if [[ -e "$B_ASOUND_VERSION" ]];then
|
||||
alsa_data=$( gawk '
|
||||
{ IGNORECASE=1 }
|
||||
# some alsa strings have the build date in (...)
|
||||
|
@ -1306,7 +1320,7 @@ get_audio_alsa_data()
|
|||
if ( $0 != "" ){
|
||||
print $0
|
||||
}
|
||||
}' /proc/asound/version )
|
||||
}' $B_ASOUND_VERSION )
|
||||
fi
|
||||
echo "$alsa_data"
|
||||
}
|
||||
|
@ -1317,10 +1331,10 @@ 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)
|
||||
# count the number of processors given
|
||||
local cpu_core_count=$(grep -ic "cpu cores" /proc/cpuinfo| cut -d':' -f2)
|
||||
local cpu_core_count=$(grep -ic "cpu cores" $CPUINFO| cut -d':' -f2)
|
||||
|
||||
if [[ $cpu_core_count -eq 0 ]];then
|
||||
cpu_core_count=$(grep -ic "^processor" /proc/cpuinfo| cut -d':' -f2)
|
||||
cpu_core_count=$(grep -ic "^processor" $CPUINFO| cut -d':' -f2)
|
||||
fi
|
||||
local cpu_alpha_count=''
|
||||
|
||||
|
@ -1354,7 +1368,7 @@ get_cpu_data()
|
|||
IFS=$'\n'
|
||||
A_CPU_DATA=($(gawk -F': ' '
|
||||
{ IGNORECASE=1 }
|
||||
# TAKE NOTE: \t+ will work for /proc/cpuinfo, but SOME ARBITRARY FILE used for TESTING might contain SPACES!
|
||||
# TAKE NOTE: \t+ will work for $CPUINFO, but SOME ARBITRARY FILE used for TESTING might contain SPACES!
|
||||
# Therefore PATCH to use [ \t]+ when TESTING!
|
||||
/^processor\t+:/ { nr = $NF }
|
||||
|
||||
|
@ -1411,7 +1425,7 @@ get_cpu_data()
|
|||
else {
|
||||
printf("%s %s\n", max, "Mhz")
|
||||
}
|
||||
}' /proc/cpuinfo))
|
||||
}' $CPUINFO))
|
||||
|
||||
IFS="$ORIGINAL_IFS"
|
||||
}
|
||||
|
@ -1445,7 +1459,7 @@ get_distro_data()
|
|||
# because Mint does not use such, it must be done as below
|
||||
## this if statement requires the spaces and * as it is, else it won't work
|
||||
##
|
||||
if [[ " $DISTROS_LSB_GOOD " == *" ${i} "* && -f /etc/lsb-release ]];then
|
||||
if [[ " $DISTROS_LSB_GOOD " == *" ${i} "* && "$B_LSB_DIR" ]];then
|
||||
distro_file='lsb-release'
|
||||
else
|
||||
distro_file="${i}"
|
||||
|
@ -1469,7 +1483,7 @@ get_distro_data()
|
|||
# otherwise try the default debian/ubuntu /etc/issue file
|
||||
elif [[ -f /etc/issue ]];then
|
||||
# lsb gives more manageable and accurate output than issue, but mint should use issue for now
|
||||
if [[ -f /etc/lsb-release && -z $( grep -i 'mint' /etc/issue ) ]];then
|
||||
if [[ "$B_LSB_DIR" && -z $( grep -i 'mint' /etc/issue ) ]];then
|
||||
distro=$( get_distro_lsb_data )
|
||||
else
|
||||
distro=$( gawk '
|
||||
|
@ -1490,7 +1504,7 @@ get_distro_data()
|
|||
# : ${distro:=Unknown distro o_O}
|
||||
## test for /etc/lsb-release as a backup in case of failure, in cases where > one version/release file
|
||||
## were found but the above resulted in null distro value
|
||||
if [[ -z $distro && -f /etc/lsb-release ]];then
|
||||
if [[ -z $distro && "$B_LSB_DIR" ]];then
|
||||
distro=$( get_distro_lsb_data )
|
||||
fi
|
||||
## finally, if all else has failed, give up
|
||||
|
@ -1511,7 +1525,7 @@ get_distro_lsb_data()
|
|||
{
|
||||
local distro=''
|
||||
|
||||
if [[ -f /etc/lsb-release && $1 != 'app' ]];then
|
||||
if [[ "$B_LSB_DIR" && $1 != 'app' ]];then
|
||||
distro=$( gawk -F '=' '
|
||||
|
||||
{ IGNORECASE=1 }
|
||||
|
@ -1540,7 +1554,7 @@ get_distro_lsb_data()
|
|||
}
|
||||
END {
|
||||
print distroId distroRelease distroCodename
|
||||
}' /etc/lsb-release )
|
||||
}' $LSB_RELEASE )
|
||||
fi
|
||||
# this is HORRIBLY slow, but I don't know why, it runs fast in shell
|
||||
# if [[ -n $( which lsb_release ) && $1 == 'app' ]];then
|
||||
|
@ -1912,7 +1926,7 @@ get_memory_data()
|
|||
END {
|
||||
used = tot-notused
|
||||
printf("%.1f/%.1fMB\n", used/1024, tot/1024)
|
||||
}' /proc/meminfo )
|
||||
}' $MEMINFO )
|
||||
|
||||
echo "$memory"
|
||||
}
|
||||
|
@ -2024,7 +2038,7 @@ get_networking_wan_ip_data()
|
|||
|
||||
get_networking_local_ip_data()
|
||||
{
|
||||
if [[ -n $( which ifconfig ) ]];then
|
||||
if [[ B_IFCONFIG ]];then
|
||||
IFS=$'\n'
|
||||
A_INTERFACES_DATA=( $( ifconfig | gawk '
|
||||
BEGIN { IGNORECASE=1 }
|
||||
|
@ -2069,12 +2083,14 @@ get_networking_local_ip_data()
|
|||
|
||||
get_partition_data()
|
||||
{
|
||||
local excluded_file_types='--exclude-type=aufs --exclude-type=tmpfs --exclude-type=iso9660'
|
||||
|
||||
IFS=$'\n'
|
||||
# sample line: /dev/sda2 ext3 15G 8.9G 4.9G 65% /home
|
||||
# $NF = partition name; $(NF - 4) = partition size; $(NF - 3) = used, in gB; $(NF - 1) = percent used
|
||||
## note: by subtracting from the last field number NF, we avoid a subtle issue with LVM df output, where if
|
||||
## the first field is too long, it will occupy its own line, this way we are getting only the needed data
|
||||
A_PARTITION_DATA=( $( df -h -T --exclude-type=aufs --exclude-type=tmpfs --exclude-type=iso9660 | gawk '
|
||||
A_PARTITION_DATA=( $( df -h -T "$excluded_file_types" | gawk '
|
||||
BEGIN { IGNORECASE=1 }
|
||||
/\/$|\/boot$|\/var$|\/home$|\/tmp$|\/usr$/ && ! /aufs/ {
|
||||
print $NF "," $(NF - 4) "," $(NF - 3) "," $(NF - 1) ",main"
|
||||
|
@ -2238,7 +2254,7 @@ print_it_out()
|
|||
# these will also be loaded in each relevant print function for long output
|
||||
print_short_data()
|
||||
{
|
||||
local current_kernel=$( uname -a | gawk '{print $1,$3,$(NF-1)}' )
|
||||
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'
|
||||
local memory=$( get_memory_data )
|
||||
|
@ -2331,7 +2347,7 @@ print_audio_data()
|
|||
# if [[ -n ${a_audio_working[2]} ]];then
|
||||
# port_data=" ${C1}at port${C2} ${a_audio_working[2]}"
|
||||
# fi
|
||||
# this should only trigger if the /proc/asound/cards data is used, not lspci -nn
|
||||
# this should only trigger if the $ASOUND_DEVICE data is used, not lspci -nn
|
||||
if [[ -n ${a_audio_working[3]} && $B_EXTRA_DATA == 'true' ]];then
|
||||
module_version=$( print_module_version "${a_audio_working[3]}" )
|
||||
fi
|
||||
|
@ -2634,7 +2650,7 @@ print_info_data()
|
|||
|
||||
# this only triggers if no X data is present
|
||||
if [[ $B_X_RUNNING != 'true' ]];then
|
||||
if [[ -a $suggested_app ]];then
|
||||
if [[ -e $suggested_app ]];then
|
||||
runlvl="$( runlevel | gawk '{ print $2 }' )"
|
||||
info_data="${info_data} ${C1}Runlevel${C2} ${runlvl}${CN}"
|
||||
fi
|
||||
|
@ -2830,7 +2846,7 @@ print_system_data()
|
|||
{
|
||||
local system_data='' bits=''
|
||||
local host_name=$( hostname )
|
||||
local current_kernel=$( uname -a | gawk '{print $1,$3,$(NF-1)}' )
|
||||
local current_kernel=$( uname -rm ) # | gawk '{print $1,$3,$(NF-1)}' )
|
||||
local distro="$( get_distro_data )"
|
||||
# check for 64 bit first
|
||||
if [ -n "$( uname -m | grep -o 'x86_64' )" ];then
|
||||
|
@ -2840,9 +2856,9 @@ print_system_data()
|
|||
fi
|
||||
|
||||
if [[ $B_SHOW_HOST == 'true' ]];then
|
||||
system_data=$( create_print_line "System:" "${C1}Host${C2} $host_name ${C1}running${C2}" )
|
||||
system_data=$( create_print_line "System:" "${C1}Host${C2} $host_name ${C1}Kernel${C2}" )
|
||||
else
|
||||
system_data=$( create_print_line "System:" "${C1}running${C2} ${CN}" )
|
||||
system_data=$( create_print_line "System:" "${C1}Kernel${C2} ${CN}" )
|
||||
fi
|
||||
system_data="$system_data ${C2}$current_kernel $bits ${C1}Distro${C2} $distro"
|
||||
print_screen_output "$system_data"
|
||||
|
|
Loading…
Reference in a new issue