mirror of
https://github.com/smxi/inxi.git
synced 2024-11-17 00:31:19 +00:00
(Change Version)
Found and fixed 2 real bugs: 1 - driver module version print out was broken for both networking and audio, and audio was not at all working due to improperly formatted module names being sent to get module driver version function. 2 - runlevel show was broken, was using a bad path. Fixed, and also made runlevels show now for -F/-xI output Updated top comment header to correctly show true script Depends and true Recommends. Recommends section now also lists which options require which applications, and I updated/corrected the debian package names for each application. Redid the recommended app testing also, now the app is only tested for locally in the get data function when it is requested. Cleaned up some other irregular code methods. Might be one more fix to get it more consistent.
This commit is contained in:
parent
61c3cd7ced
commit
b95b6a1962
167
inxi
167
inxi
|
@ -1,8 +1,8 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
########################################################################
|
########################################################################
|
||||||
#### Script Name: inxi
|
#### Script Name: inxi
|
||||||
#### version: 1.3.2
|
#### version: 1.3.3
|
||||||
#### Date: January 14 2010
|
#### Date: January 29 2010
|
||||||
########################################################################
|
########################################################################
|
||||||
#### SPECIAL THANKS
|
#### SPECIAL THANKS
|
||||||
########################################################################
|
########################################################################
|
||||||
|
@ -42,22 +42,39 @@
|
||||||
#### If you don't understand what Free Software is, please read (or reread)
|
#### If you don't understand what Free Software is, please read (or reread)
|
||||||
#### this page: http://www.gnu.org/philosophy/free-sw.html
|
#### this page: http://www.gnu.org/philosophy/free-sw.html
|
||||||
########################################################################
|
########################################################################
|
||||||
|
#### Package names in (...) are the Debian Squeeze package name. Check your
|
||||||
|
#### distro for proper package name by doing this: which <application>
|
||||||
|
#### then find what package owns that application file.
|
||||||
#### DEPENDENCIES
|
#### DEPENDENCIES
|
||||||
#### bash >=3.0(bash), df;readlink;stty;tr;uname;wc(coreutils),
|
#### bash >=3.0 (bash); df, readlink, stty, tr, uname, wc (coreutils),
|
||||||
#### gawk(gawk), grep(grep), hostname(hostname), lspci(pciutils),
|
#### gawk (gawk); grep (grep); hostname (hostname); lspci (pciutils),
|
||||||
#### ps;uptime(procps), glxinfo;xdpyinfo;xrandr(xbase-clients)
|
#### free, ps, uptime (procps);
|
||||||
#### Also the proc filesystem should be present and mounted
|
#### Also the proc filesystem should be present and mounted
|
||||||
####
|
####
|
||||||
#### Apparently unpatched bash 3.0 has arrays broken; bug reports:
|
#### Apparently unpatched bash 3.0 has arrays broken; bug reports:
|
||||||
#### http://ftp.gnu.org/gnu/bash/bash-3.0-patches/bash30-008
|
#### http://ftp.gnu.org/gnu/bash/bash-3.0-patches/bash30-008
|
||||||
#### http://lists.gnu.org/archive/html/bug-bash/2004-08/msg00144.html
|
#### http://lists.gnu.org/archive/html/bug-bash/2004-08/msg00144.html
|
||||||
|
#### Bash 3.1 for proper array use
|
||||||
####
|
####
|
||||||
#### Arrays work in bash 2.05b, but "egrep -m" does not
|
#### Arrays work in bash 2.05b, but "egrep -m" does not
|
||||||
####
|
####
|
||||||
#### RECOMMENDS (Needed to run certain features)
|
#### RECOMMENDS (Needed to run certain features, listed by option)
|
||||||
#### For local interfaces/IP test: ifconfig (in net-tools for Debian systems)
|
#### -A - for output of usb audio information: lsusb (usbutils)
|
||||||
#### runlevel(sysvinit): to view current runlevel while not in X window system
|
#### -Ax - for audio module version: modinfo (module-init-tools)
|
||||||
#### Bash 3.1 for proper array use
|
#### -Dx - for hdd temp output (root only default): hddtemp (hddtemp)
|
||||||
|
#### For user level hdd temp output: sudo (sudo)
|
||||||
|
#### Note: requires user action for this feature to run as user (edit /etc/sudoers file)
|
||||||
|
#### -G - full graphics output requires: glxinfo (mesa-utils); xdpyinfo (X11-utils);
|
||||||
|
#### xrandr (x11-xserver-utils)
|
||||||
|
#### -i - IP information, local/wan - ifconfig (net-tools)
|
||||||
|
#### -Ix - view current runlevel while not in X window system (or with -x): runlevel (sysvinit)
|
||||||
|
#### -o - for unmounted file system information in unmounted drives (root only default): file (file)
|
||||||
|
#### Note: requires user action for this feature to run as user (edit /etc/sudoers file)
|
||||||
|
#### For user level unmounted file system type output: sudo (sudo)
|
||||||
|
#### -s For any sensors output, fan, temp, etc: sensors (lm-sensors)
|
||||||
|
#### Note: requires setup of lm-sensors (sensors-detect and adding modules/modprobe/reboot,
|
||||||
|
#### and ideally, pwmconfig) prior to full output being available.
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
#### CONVENTIONS:
|
#### CONVENTIONS:
|
||||||
#### Indentation: TABS
|
#### Indentation: TABS
|
||||||
|
@ -195,8 +212,6 @@ B_ROOT='false'
|
||||||
B_RUNNING_IN_SHELL='false'
|
B_RUNNING_IN_SHELL='false'
|
||||||
# this sets the debug buffer
|
# this sets the debug buffer
|
||||||
B_SCRIPT_UP='false'
|
B_SCRIPT_UP='false'
|
||||||
# sensors only if installed
|
|
||||||
B_SENSORS='false'
|
|
||||||
# Show sound card data
|
# Show sound card data
|
||||||
B_SHOW_AUDIO='false'
|
B_SHOW_AUDIO='false'
|
||||||
B_SHOW_CPU='false'
|
B_SHOW_CPU='false'
|
||||||
|
@ -233,7 +248,6 @@ B_ASOUND_DEVICE_FILE='false'
|
||||||
B_ASOUND_VERSION_FILE='false'
|
B_ASOUND_VERSION_FILE='false'
|
||||||
B_BASH_ARRAY='false'
|
B_BASH_ARRAY='false'
|
||||||
B_CPUINFO_FILE='false'
|
B_CPUINFO_FILE='false'
|
||||||
B_IFCONFIG='false'
|
|
||||||
B_LSB_FILE='false'
|
B_LSB_FILE='false'
|
||||||
B_MEMINFO_FILE='false'
|
B_MEMINFO_FILE='false'
|
||||||
B_MODULES_FILE='false' #
|
B_MODULES_FILE='false' #
|
||||||
|
@ -550,17 +564,6 @@ initialize_script_data()
|
||||||
B_SCSI_FILE='true'
|
B_SCSI_FILE='true'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# lack of ifconfig will throw an error only upon it's usage
|
|
||||||
if [[ -n $( type -p ifconfig ) ]]; then
|
|
||||||
B_IFCONFIG='true'
|
|
||||||
else
|
|
||||||
A_INTERFACES_DATA=( "Interfaces tool requires missing app: ifconfig" )
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -n $( type -p sensors ) ]];then
|
|
||||||
B_SENSORS='true'
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -n $DISPLAY ]];then
|
if [[ -n $DISPLAY ]];then
|
||||||
B_X_RUNNING='true'
|
B_X_RUNNING='true'
|
||||||
fi
|
fi
|
||||||
|
@ -608,7 +611,7 @@ check_script_suggested_apps()
|
||||||
check_script_depends()
|
check_script_depends()
|
||||||
{
|
{
|
||||||
eval $LOGFS
|
eval $LOGFS
|
||||||
local app_name='' app_data=''
|
local app_name='' app_path=''
|
||||||
# bc removed from deps for now
|
# bc removed from deps for now
|
||||||
local depends="df free gawk grep hostname lspci ps readlink tr uname uptime wc"
|
local depends="df free gawk grep hostname lspci ps readlink tr uname uptime wc"
|
||||||
local x_apps="xrandr xdpyinfo glxinfo"
|
local x_apps="xrandr xdpyinfo glxinfo"
|
||||||
|
@ -616,8 +619,8 @@ check_script_depends()
|
||||||
if [[ $B_X_RUNNING == 'true' ]];then
|
if [[ $B_X_RUNNING == 'true' ]];then
|
||||||
for app_name in $x_apps
|
for app_name in $x_apps
|
||||||
do
|
do
|
||||||
app_data=$( type -p $app_name )
|
app_path=$( type -p $app_name )
|
||||||
if [[ -z $app_data ]];then
|
if [[ -z $app_path ]];then
|
||||||
script_debugger "Resuming in non X mode: $app_name not found in path"
|
script_debugger "Resuming in non X mode: $app_name not found in path"
|
||||||
B_X_RUNNING='false'
|
B_X_RUNNING='false'
|
||||||
break
|
break
|
||||||
|
@ -629,8 +632,8 @@ check_script_depends()
|
||||||
|
|
||||||
for app_name in $depends
|
for app_name in $depends
|
||||||
do
|
do
|
||||||
app_data=$( type -p $app_name )
|
app_path=$( type -p $app_name )
|
||||||
if [[ -z $app_data ]];then
|
if [[ -z $app_path ]];then
|
||||||
error_handler 5 "$app_name"
|
error_handler 5 "$app_name"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
@ -1009,7 +1012,7 @@ get_parameters()
|
||||||
local opt='' wget_test='' update_flags='U!:'
|
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
|
local use_short='true' # this is needed to trigger short output, every v/d/F/line trigger sets this false
|
||||||
|
|
||||||
# <comment here. what is this for?>
|
# If distro maintainers want to not allow updates, turn off that option for users
|
||||||
if [[ $B_ALLOW_UPDATE == 'false' ]];then
|
if [[ $B_ALLOW_UPDATE == 'false' ]];then
|
||||||
update_flags=''
|
update_flags=''
|
||||||
fi
|
fi
|
||||||
|
@ -1586,10 +1589,8 @@ is_this_qt4_konvi()
|
||||||
konvi_dbus_exist=$( qdbus | grep "org.kde.konversation" )
|
konvi_dbus_exist=$( qdbus | grep "org.kde.konversation" )
|
||||||
|
|
||||||
if [[ -n $konvi_dbus_exist && -e /usr/share/kde4/apps/konversation ]]; then
|
if [[ -n $konvi_dbus_exist && -e /usr/share/kde4/apps/konversation ]]; then
|
||||||
|
|
||||||
konvi_pid=$( ps -A | grep -i 'konversation' )
|
konvi_pid=$( ps -A | grep -i 'konversation' )
|
||||||
konvi_pid=$( echo $konvi_pid | gawk '{ print $1 }' )
|
konvi_pid=$( echo $konvi_pid | gawk '{ print $1 }' )
|
||||||
|
|
||||||
konvi_home_dir=$( readlink /proc/$konvi_pid/exe )
|
konvi_home_dir=$( readlink /proc/$konvi_pid/exe )
|
||||||
konvi=$( echo $konvi_home_dir | sed "s/\// /g" )
|
konvi=$( echo $konvi_home_dir | sed "s/\// /g" )
|
||||||
konvi=($konvi)
|
konvi=($konvi)
|
||||||
|
@ -1651,7 +1652,7 @@ get_cmdline()
|
||||||
get_audio_data()
|
get_audio_data()
|
||||||
{
|
{
|
||||||
eval $LOGFS
|
eval $LOGFS
|
||||||
local i='' alsa_data='' alsa_driver='' device_count=''
|
local i='' alsa_data='' alsa_driver='' device_count='' lsusb_path=''
|
||||||
local usb_proc_file='' array_count='' usb_id='' usb_data=''
|
local usb_proc_file='' array_count='' usb_id='' usb_data=''
|
||||||
|
|
||||||
IFS=$'\n'
|
IFS=$'\n'
|
||||||
|
@ -1766,15 +1767,16 @@ get_audio_data()
|
||||||
|
|
||||||
# alsa usb detection by damentz
|
# alsa usb detection by damentz
|
||||||
# for every sound card symlink in /proc/asound - display information about it
|
# for every sound card symlink in /proc/asound - display information about it
|
||||||
|
lsusb_path=$( type -p lsusb )
|
||||||
for usb_proc_file in /proc/asound/*
|
for usb_proc_file in /proc/asound/*
|
||||||
do
|
do
|
||||||
# if lsusb exists, the file is a symlink, and contains an important usb exclusive file: continue
|
# if lsusb exists, the file is a symlink, and contains an important usb exclusive file: continue
|
||||||
if [[ -n $( which lsusb ) && -L $usb_proc_file && -e $usb_proc_file/usbid ]]; then
|
if [[ -n $lsusb_path && -L $usb_proc_file && -e $usb_proc_file/usbid ]]; then
|
||||||
# send error messages of lsusb to /dev/null as it will display a bunch if not a super user
|
# send error messages of lsusb to /dev/null as it will display a bunch if not a super user
|
||||||
# also, find the contents of usbid in lsusb and print everything after the 7th word on the
|
# also, find the contents of usbid in lsusb and print everything after the 7th word on the
|
||||||
# corresponding line. Finally, strip out commas as they will change the driver :)
|
# corresponding line. Finally, strip out commas as they will change the driver :)
|
||||||
usb_id=$( cat $usb_proc_file/usbid )
|
usb_id=$( cat $usb_proc_file/usbid )
|
||||||
usb_data=$( lsusb -v 2>/dev/null | grep "$usb_id" )
|
usb_data=$( $lsusb_path -v 2>/dev/null | grep "$usb_id" )
|
||||||
log_function_data 'raw' "usb_data:\n$usb_data"
|
log_function_data 'raw' "usb_data:\n$usb_data"
|
||||||
usb_data=$( gawk '{
|
usb_data=$( gawk '{
|
||||||
gsub( /,/, " ", $0 )
|
gsub( /,/, " ", $0 )
|
||||||
|
@ -2181,7 +2183,7 @@ get_distro_lsb_data()
|
||||||
log_function_data 'cat' "$FILE_LSB_RELEASE"
|
log_function_data 'cat' "$FILE_LSB_RELEASE"
|
||||||
fi
|
fi
|
||||||
# this is HORRIBLY slow, but I don't know why, it runs fast in shell
|
# this is HORRIBLY slow, but I don't know why, it runs fast in shell
|
||||||
# if [[ -n $( which lsb_release ) && $1 == 'app' ]];then
|
# if [[ -n $( type -p lsb_release ) && $1 == 'app' ]];then
|
||||||
# distro=$( echo "$( lsb_release -irc )" | gawk '
|
# distro=$( echo "$( lsb_release -irc )" | gawk '
|
||||||
# { IGNORECASE=1 }
|
# { IGNORECASE=1 }
|
||||||
# /^Distributor ID/ {
|
# /^Distributor ID/ {
|
||||||
|
@ -2208,7 +2210,7 @@ get_distro_lsb_data()
|
||||||
|
|
||||||
get_gpu_temp_data()
|
get_gpu_temp_data()
|
||||||
{
|
{
|
||||||
local gpu_temp='' gpu_fan='' screens='' screen_nu='' gpu_temp_looper=''
|
local gpu_temp='' gpu_fan='' screens='' screen_nu='' gpu_temp_looper=''
|
||||||
|
|
||||||
# we'll try for nvidia/ati, then add if more are shown
|
# we'll try for nvidia/ati, then add if more are shown
|
||||||
if [[ -n $( type -p nvidia-settings ) ]];then
|
if [[ -n $( type -p nvidia-settings ) ]];then
|
||||||
|
@ -2687,17 +2689,19 @@ get_hard_drive_data_advanced()
|
||||||
get_hdd_temp_data()
|
get_hdd_temp_data()
|
||||||
{
|
{
|
||||||
eval $LOGFS
|
eval $LOGFS
|
||||||
local hdd_temp='' sudo_command=''
|
local hdd_temp='' sudo_command=''
|
||||||
|
local hddtemp_path=$( type -p hddtemp )
|
||||||
|
local sudo_path=$( type -p sudo )
|
||||||
|
|
||||||
if [[ -n $( which hddtemp ) && -n $1 ]];then
|
if [[ -n $hddtemp_path && -n $1 ]];then
|
||||||
# only use sudo if not root, -n option requires sudo -V 1.7 or greater. sudo will just error out
|
# only use sudo if not root, -n option requires sudo -V 1.7 or greater. sudo will just error out
|
||||||
# which is the safest course here for now, otherwise that interactive sudo password thing is too annoying
|
# which is the safest course here for now, otherwise that interactive sudo password thing is too annoying
|
||||||
# important: -n makes it non interactive, no prompt for password
|
# important: -n makes it non interactive, no prompt for password
|
||||||
if [[ $B_ROOT != 'true' && -n $( which sudo ) ]];then
|
if [[ $B_ROOT != 'true' && -n $sudo_path ]];then
|
||||||
sudo_command='sudo -n '
|
sudo_command='sudo -n '
|
||||||
fi
|
fi
|
||||||
# this will fail if regular user and no sudo present, but that's fine, it will just return null
|
# this will fail if regular user and no sudo present, but that's fine, it will just return null
|
||||||
hdd_temp=$( eval $sudo_command hddtemp -nq -u C $1 )
|
hdd_temp=$( eval $sudo_command $hddtemp_path -nq -u C $1 )
|
||||||
if [[ -n $hdd_temp && -n $( grep -E '^([0-9]+)$' <<< $hdd_temp ) ]];then
|
if [[ -n $hdd_temp && -n $( grep -E '^([0-9]+)$' <<< $hdd_temp ) ]];then
|
||||||
echo $hdd_temp
|
echo $hdd_temp
|
||||||
fi
|
fi
|
||||||
|
@ -2747,9 +2751,10 @@ get_module_version_number()
|
||||||
{
|
{
|
||||||
eval $LOGFS
|
eval $LOGFS
|
||||||
local module_version=''
|
local module_version=''
|
||||||
|
local modinfo_path=$( type -p modinfo )
|
||||||
|
|
||||||
if [[ -n $( which modinfo ) ]];then
|
if [[ -n $modinfo_path ]];then
|
||||||
module_version=$( modinfo $1 | gawk '
|
module_version=$( $modinfo_path $1 2>/dev/null | gawk '
|
||||||
BEGIN {
|
BEGIN {
|
||||||
IGNORECASE=1
|
IGNORECASE=1
|
||||||
}
|
}
|
||||||
|
@ -2863,9 +2868,13 @@ get_networking_wan_ip_data()
|
||||||
get_networking_local_ip_data()
|
get_networking_local_ip_data()
|
||||||
{
|
{
|
||||||
eval $LOGFS
|
eval $LOGFS
|
||||||
if [[ $B_IFCONFIG == 'true' ]];then
|
|
||||||
|
local ifconfig_path=$( type -p ifconfig )
|
||||||
|
|
||||||
|
# lack of ifconfig will throw an error only upon it's usage
|
||||||
|
if [[ -n $ifconfig_path ]];then
|
||||||
IFS=$'\n'
|
IFS=$'\n'
|
||||||
A_INTERFACES_DATA=( $( ifconfig | gawk '
|
A_INTERFACES_DATA=( $( $ifconfig_path | gawk '
|
||||||
BEGIN {
|
BEGIN {
|
||||||
IGNORECASE=1
|
IGNORECASE=1
|
||||||
}
|
}
|
||||||
|
@ -2903,6 +2912,8 @@ get_networking_local_ip_data()
|
||||||
}
|
}
|
||||||
}') )
|
}') )
|
||||||
IFS="$ORIGINAL_IFS"
|
IFS="$ORIGINAL_IFS"
|
||||||
|
else
|
||||||
|
A_INTERFACES_DATA=( "Interfaces tool requires missing app: ifconfig" )
|
||||||
fi
|
fi
|
||||||
log_function_data "A_INTERFACES_DATA: ${A_INTERFACES_DATA[@]}"
|
log_function_data "A_INTERFACES_DATA: ${A_INTERFACES_DATA[@]}"
|
||||||
eval $LOGFE
|
eval $LOGFE
|
||||||
|
@ -3216,16 +3227,30 @@ $repo_data_working"
|
||||||
eval $LOGFE
|
eval $LOGFE
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get_runlevel_data()
|
||||||
|
{
|
||||||
|
eval $LOGFS
|
||||||
|
local runlvl=''
|
||||||
|
local runlevel_path=$( type -p runlevel )
|
||||||
|
if [[ -n $runlevel_path ]];then
|
||||||
|
runlvl="$( $runlevel_path | gawk '{ print $2 }' )"
|
||||||
|
fi
|
||||||
|
echo $runlvl
|
||||||
|
eval $LOGFE
|
||||||
|
}
|
||||||
|
|
||||||
get_sensors_data()
|
get_sensors_data()
|
||||||
{
|
{
|
||||||
eval $LOGFS
|
eval $LOGFS
|
||||||
|
|
||||||
|
local sensors_path=$( type -p sensors )
|
||||||
|
|
||||||
IFS=$'\n'
|
IFS=$'\n'
|
||||||
if [[ $B_SENSORS == 'true' ]];then
|
if [[ -n $sensors_path ]];then
|
||||||
# note: non-configured sensors gives error message, which we need to redirect to stdout
|
# note: non-configured sensors gives error message, which we need to redirect to stdout
|
||||||
# also, -F ':' no space, since some cases have the data starting right after,like - :1287
|
# also, -F ':' no space, since some cases have the data starting right after,like - :1287
|
||||||
A_SENSORS_DATA=( $(
|
A_SENSORS_DATA=( $(
|
||||||
sensors | gawk -F ':' -v userCpuNo="$SENSORS_CPU_NO" '
|
$sensors_path | gawk -F ':' -v userCpuNo="$SENSORS_CPU_NO" '
|
||||||
BEGIN {
|
BEGIN {
|
||||||
IGNORECASE=1
|
IGNORECASE=1
|
||||||
core0Temp="" # only if all else fails...
|
core0Temp="" # only if all else fails...
|
||||||
|
@ -3612,17 +3637,19 @@ get_unmounted_partition_filesystem()
|
||||||
{
|
{
|
||||||
eval $LOGFS
|
eval $LOGFS
|
||||||
local partition_filesystem='' sudo_command=''
|
local partition_filesystem='' sudo_command=''
|
||||||
|
local file_path=$( type -p file )
|
||||||
|
local sudo_path=$( type -p sudo )
|
||||||
|
|
||||||
if [[ -n $( which file ) && -n $1 ]];then
|
if [[ -n $file_path && -n $1 ]];then
|
||||||
# only use sudo if not root, -n option requires sudo -V 1.7 or greater. sudo will just error out
|
# only use sudo if not root, -n option requires sudo -V 1.7 or greater. sudo will just error out
|
||||||
# which is the safest course here for now, otherwise that interactive sudo password thing is too annoying
|
# which is the safest course here for now, otherwise that interactive sudo password thing is too annoying
|
||||||
# important: -n makes it non interactive, no prompt for password
|
# important: -n makes it non interactive, no prompt for password
|
||||||
if [[ $B_ROOT != 'true' && -n $( which sudo ) ]];then
|
if [[ $B_ROOT != 'true' && -n $sudo_path ]];then
|
||||||
sudo_command='sudo -n '
|
sudo_command='sudo -n '
|
||||||
fi
|
fi
|
||||||
# this will fail if regular user and no sudo present, but that's fine, it will just return null
|
# this will fail if regular user and no sudo present, but that's fine, it will just return null
|
||||||
# note the hack that simply slices out the first line if > 1 items found in string
|
# note the hack that simply slices out the first line if > 1 items found in string
|
||||||
partition_filesystem=$( eval $sudo_command file -s $1 | grep -Eio '(ext2|ext3|ext4|ext5|ext[[:space:]]|ntfs|fat32|fat16|fat[[:space:]]\(.*\)|vfat|fatx|tfat|swap|btrfs|ffs[[:space:]]|hfs\+|hfs[[:space:]]plus|hfs[[:space:]]extended[[:space:]]version[[:space:]][1-9]|hfsj|hfs[[:space:]]|jfs[[:space:]]|nss[[:space:]]|reiserfs|reiser4|ufs2|ufs[[:space:]]|xfs[[:space:]]|zfs[[:space:]])' | grep -Em 1 '.*' )
|
partition_filesystem=$( eval $sudo_command $file_path -s $1 | grep -Eio '(ext2|ext3|ext4|ext5|ext[[:space:]]|ntfs|fat32|fat16|fat[[:space:]]\(.*\)|vfat|fatx|tfat|swap|btrfs|ffs[[:space:]]|hfs\+|hfs[[:space:]]plus|hfs[[:space:]]extended[[:space:]]version[[:space:]][1-9]|hfsj|hfs[[:space:]]|jfs[[:space:]]|nss[[:space:]]|reiserfs|reiser4|ufs2|ufs[[:space:]]|xfs[[:space:]]|zfs[[:space:]])' | grep -Em 1 '.*' )
|
||||||
if [[ -n $partition_filesystem ]];then
|
if [[ -n $partition_filesystem ]];then
|
||||||
echo $partition_filesystem
|
echo $partition_filesystem
|
||||||
fi
|
fi
|
||||||
|
@ -3908,8 +3935,8 @@ print_audio_data()
|
||||||
# port_data=" ${C1}at port${C2} ${a_audio_working[2]}"
|
# port_data=" ${C1}at port${C2} ${a_audio_working[2]}"
|
||||||
# fi
|
# fi
|
||||||
# this should only trigger if the $FILE_ASOUND_DEVICE data is used, not lspci -nn
|
# this should only trigger if the $FILE_ASOUND_DEVICE data is used, not lspci -nn
|
||||||
if [[ -n ${a_audio_working[3]} && $B_EXTRA_DATA == 'true' ]];then
|
if [[ -n ${a_audio_working[1]} && $B_EXTRA_DATA == 'true' ]];then
|
||||||
module_version=$( print_module_version "${a_audio_working[3]}" )
|
module_version=$( print_module_version "${a_audio_working[1]}" 'audio' )
|
||||||
fi
|
fi
|
||||||
if [[ -n ${a_audio_working[1]} ]];then
|
if [[ -n ${a_audio_working[1]} ]];then
|
||||||
alsa_driver=" ${C1}driver${C2} ${a_audio_working[1]}$module_version"
|
alsa_driver=" ${C1}driver${C2} ${a_audio_working[1]}$module_version"
|
||||||
|
@ -4259,7 +4286,7 @@ print_hard_disk_data()
|
||||||
print_info_data()
|
print_info_data()
|
||||||
{
|
{
|
||||||
eval $LOGFS
|
eval $LOGFS
|
||||||
local suggested_app="runlevel"
|
|
||||||
local info_data=''
|
local info_data=''
|
||||||
local runlvl=''
|
local runlvl=''
|
||||||
local memory="$( get_memory_data )"
|
local memory="$( get_memory_data )"
|
||||||
|
@ -4270,10 +4297,10 @@ print_info_data()
|
||||||
# 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}" )
|
||||||
info_data=$( create_print_line "Info:" "${C1}Processes${C2} ${processes} ${C1}Uptime${C2} ${up_time} ${C1}Memory${C2} ${memory}${CN}" )
|
info_data=$( create_print_line "Info:" "${C1}Processes${C2} ${processes} ${C1}Uptime${C2} ${up_time} ${C1}Memory${C2} ${memory}${CN}" )
|
||||||
|
|
||||||
# this only triggers if no X data is present
|
# this only triggers if no X data is present or if extra data switch is on
|
||||||
if [[ $B_X_RUNNING != 'true' ]];then
|
if [[ $B_X_RUNNING != 'true' || $B_EXTRA_DATA == 'true' ]];then
|
||||||
if [[ -e $suggested_app ]];then
|
runlvl="$( get_runlevel_data )"
|
||||||
runlvl="$( runlevel | gawk '{ print $2 }' )"
|
if [[ -n $runlvl ]];then
|
||||||
info_data="${info_data} ${C1}Runlevel${C2} ${runlvl}${CN}"
|
info_data="${info_data} ${C1}Runlevel${C2} ${runlvl}${CN}"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
@ -4290,15 +4317,27 @@ print_info_data()
|
||||||
eval $LOGFE
|
eval $LOGFE
|
||||||
}
|
}
|
||||||
|
|
||||||
# args: $1 - module name (could be > 1, so loop it )
|
# args: $1 - module name (could be > 1, so loop it ); $2 - audio (optional)
|
||||||
print_module_version()
|
print_module_version()
|
||||||
{
|
{
|
||||||
eval $LOGFS
|
eval $LOGFS
|
||||||
local module_versions='' module='' version=''
|
local module_versions='' module='' version='' prefix='' modules=$1
|
||||||
|
|
||||||
|
# note that sound driver data tends to have upper case, but modules are lower
|
||||||
|
if [[ $2 == 'audio' ]];then
|
||||||
|
prefix='snd_' # sound modules start with snd_
|
||||||
|
modules=$( tr '[A-Z]' '[a-z]' <<< $modules )
|
||||||
|
# special intel processing, generally no version info though
|
||||||
|
if [[ $modules == 'hda intel' ]];then
|
||||||
|
modules='hda_intel'
|
||||||
|
elif [[ $modules == 'intel ich' ]];then
|
||||||
|
modules='intel8x0'
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
for module in $1
|
for module in $modules
|
||||||
do
|
do
|
||||||
version=$( get_module_version_number $module )
|
version=$( get_module_version_number "$prefix$module" )
|
||||||
if [[ -n $version ]];then
|
if [[ -n $version ]];then
|
||||||
module_versions="$module_versions $version"
|
module_versions="$module_versions $version"
|
||||||
fi
|
fi
|
||||||
|
@ -4328,8 +4367,8 @@ print_networking_data()
|
||||||
if [[ ${#A_NETWORK_DATA[@]} -le 1 ]];then
|
if [[ ${#A_NETWORK_DATA[@]} -le 1 ]];then
|
||||||
card_one='Card'
|
card_one='Card'
|
||||||
fi
|
fi
|
||||||
if [[ -n ${a_network_working[3]} && $B_EXTRA_DATA == 'true' ]];then
|
if [[ -n ${a_network_working[1]} && $B_EXTRA_DATA == 'true' ]];then
|
||||||
module_version=$( print_module_version "${a_network_working[3]}" )
|
module_version=$( print_module_version "${a_network_working[1]}" )
|
||||||
fi
|
fi
|
||||||
if [[ -n ${a_network_working[1]} ]];then
|
if [[ -n ${a_network_working[1]} ]];then
|
||||||
driver_data=" ${C1}driver${C2} ${a_network_working[1]}$module_version"
|
driver_data=" ${C1}driver${C2} ${a_network_working[1]}$module_version"
|
||||||
|
@ -4354,8 +4393,8 @@ print_networking_data()
|
||||||
driver_data=''
|
driver_data=''
|
||||||
port_plural=''
|
port_plural=''
|
||||||
module_version=''
|
module_version=''
|
||||||
if [[ -n ${a_network_working[3]} && $B_EXTRA_DATA == 'true' ]];then
|
if [[ -n ${a_network_working[1]} && $B_EXTRA_DATA == 'true' ]];then
|
||||||
module_version=$( print_module_version "${a_network_working[3]}" )
|
module_version=$( print_module_version "${a_network_working[1]}" )
|
||||||
fi
|
fi
|
||||||
if [[ -n ${a_network_working[1]} ]];then
|
if [[ -n ${a_network_working[1]} ]];then
|
||||||
driver_data=" ${C1}driver${C2} ${a_network_working[1]}$module_version"
|
driver_data=" ${C1}driver${C2} ${a_network_working[1]}$module_version"
|
||||||
|
|
Loading…
Reference in a new issue