mirror of
https://github.com/smxi/inxi.git
synced 2024-11-17 00:31:19 +00:00
Update Version:
New debugging feature: -@ 11 this triggers a download/run of xiin, which reads and writes to file contents of /sys, and also writes to file lsusb, lspci, lspci -vv, and the last 200 lines of /var/log/Xorg.0.log which can be helpful for debugging various gfx driver issues. Might make the last one optional or from another option, we'll see. Also removed for detected wifi cards the speed and duplex modes, since they are not applicable for wifi This will not always work, it detects string wireless, wifi, wi-fi, wlan and if found, doesn't make those lines. Better than meaningless N/A output I'd say. Debugger should make it easier, places data in a directory in $HOME./inxi/ and tells user where to find it.
This commit is contained in:
parent
07d1b9ba35
commit
9dfb064843
135
inxi
135
inxi
|
@ -1,8 +1,8 @@
|
|||
#!/bin/bash
|
||||
########################################################################
|
||||
#### Script Name: inxi
|
||||
#### version: 1.4.96
|
||||
#### Date: May 4 2011
|
||||
#### version: 1.4.97
|
||||
#### Date: May 6 2011
|
||||
########################################################################
|
||||
#### SPECIAL THANKS
|
||||
########################################################################
|
||||
|
@ -1062,6 +1062,15 @@ error_handler()
|
|||
16)
|
||||
error_message="$SCRIPT_NAME downloaded but the file data is corrupted. Purged data and using current version."
|
||||
;;
|
||||
17)
|
||||
error_message="Failed to download required file: $2\nMaybe the remote site is down or your networking is broken?"
|
||||
;;
|
||||
18)
|
||||
error_message="$2 downloaded but the file data is corrupted. Unable to continue."
|
||||
;;
|
||||
19)
|
||||
error_message="$2 downloaded but reports error on execution. Unable to continue."
|
||||
;;
|
||||
*) error_message="error unknown: $@"
|
||||
set -- 99
|
||||
;;
|
||||
|
@ -1219,6 +1228,65 @@ script_self_updater()
|
|||
eval $LOGFS
|
||||
}
|
||||
|
||||
debug_data_collector()
|
||||
{
|
||||
local xiin_app='' xiin_data_dir="xiin-$(hostname)-$(date +%Y%m%d)" xiin_data_file=''
|
||||
|
||||
if [[ $B_RUNNING_IN_SHELL == 'true' ]];then
|
||||
echo "Starting debugging data collection."
|
||||
echo -n "Checking/creating required directories... "
|
||||
if [[ ! -d $SCRIPT_DATA_DIR ]];then
|
||||
mkdir $SCRIPT_DATA_DIR
|
||||
fi
|
||||
echo 'completed'
|
||||
cd $SCRIPT_DATA_DIR
|
||||
if [[ -d $xiin_data_dir ]];then
|
||||
echo 'Deleting previous xiin data directory...'
|
||||
rm -rf $xiin_data_dir
|
||||
fi
|
||||
mkdir $xiin_data_dir
|
||||
if [[ -f $xiin_data_dir.tar.gz ]];then
|
||||
echo 'Deleting previous tar.gz file...'
|
||||
rm -f $xiin_data_dir.tar.gz
|
||||
fi
|
||||
|
||||
xiin_data_file=$SCRIPT_DATA_DIR/$xiin_data_dir/xiin-sys.txt
|
||||
|
||||
echo 'Downloading required tree traverse tool xiin...'
|
||||
wget -q -O xiin http://inxi.googlecode.com/svn/branches/xiin/xiin || error_handler 17 'xiin'
|
||||
if [[ -n $( grep 'checkPython' xiin ) ]];then
|
||||
echo 'Running xiin tool now on /sys...'
|
||||
python ./xiin -d /sys -f $xiin_data_file || error_handler 19 'xiin'
|
||||
else
|
||||
error_handler 18 'xiin'
|
||||
fi
|
||||
echo 'Collecting related system info now, lsusb, lspci, lscpci -vv, Xorg.log data'
|
||||
lsusb > $xiin_data_dir/lsusb.txt
|
||||
lspci > $xiin_data_dir/lspci.txt
|
||||
lspci -vv > $xiin_data_dir/lspci-vv.txt
|
||||
cat /var/log/Xorg.0.log 2>/dev/null | tail -n 200 > $xiin_data_dir/xorg-200.txt
|
||||
|
||||
echo 'Creating tar.gz compressed file of this material now. Contents:'
|
||||
echo '-------------------------'
|
||||
tar -cvzf $xiin_data_dir.tar.gz $xiin_data_dir
|
||||
echo '-------------------------'
|
||||
echo 'Cleaning up leftovers...'
|
||||
rm -rf $xiin_data_dir
|
||||
echo 'Testing gzip file integrity...'
|
||||
gzip -t $xiin_data_dir.tar.gz
|
||||
if [[ $? -gt 0 ]];then
|
||||
echo 'Data in gz is corrupted, removing gzip file, try running this again.'
|
||||
rm -f $xiin_data_dir.tar.gz
|
||||
else
|
||||
echo 'All done, you can find your data gzipped directory here:'
|
||||
echo $SCRIPT_DATA_DIR/$xiin_data_dir.tar.gz
|
||||
fi
|
||||
else
|
||||
echo 'This feature only available in console or shell client! Exiting now.'
|
||||
fi
|
||||
exit 0
|
||||
}
|
||||
|
||||
#### -------------------------------------------------------------------
|
||||
#### print / output cleaners
|
||||
#### -------------------------------------------------------------------
|
||||
|
@ -1471,22 +1539,27 @@ get_parameters()
|
|||
## debuggers and testing tools
|
||||
%) B_HANDLE_CORRUPT_DATA='true'
|
||||
;;
|
||||
@) if [[ -n $( grep -E "^([1-9]|10)$" <<< $OPTARG ) ]];then
|
||||
@) if [[ -n $( grep -E "^([1-9]|1[0-1])$" <<< $OPTARG ) ]];then
|
||||
DEBUG=$OPTARG
|
||||
exec 2>&1
|
||||
# switch on logging only for -@ 8-10
|
||||
if [[ $OPTARG -ge 8 ]];then
|
||||
if [[ $OPTARG -eq 10 ]];then
|
||||
B_LOG_COLORS='true'
|
||||
elif [[ $OPTARG -eq 9 ]];then
|
||||
B_LOG_FULL_DATA='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
|
||||
case $OPTARG in
|
||||
8|9|10)
|
||||
if [[ $OPTARG -eq 10 ]];then
|
||||
B_LOG_COLORS='true'
|
||||
elif [[ $OPTARG -eq 9 ]];then
|
||||
B_LOG_FULL_DATA='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
|
||||
;;
|
||||
11)
|
||||
debug_data_collector
|
||||
;;
|
||||
esac
|
||||
else
|
||||
error_handler 9 "$OPTARG"
|
||||
fi
|
||||
|
@ -1614,6 +1687,7 @@ show_options()
|
|||
print_screen_output "-% Overrides defective or corrupted data."
|
||||
print_screen_output "-@ Triggers debugger output. Requires debugging level 1-10 (8-10 - logging)."
|
||||
print_screen_output " 8 - basic logging; 9 - full file/sys info logging; 10 - color logging."
|
||||
print_screen_output " 11 - No logging, creates tar.gz file of user data from lsusb/lspci/Xorg.0.log, and xiin read of /sys."
|
||||
if [[ $1 == 'full' ]];then
|
||||
print_screen_output " "
|
||||
print_screen_output "Developer and Testing Options (Advanced):"
|
||||
|
@ -5377,24 +5451,34 @@ print_network_advanced_data()
|
|||
{
|
||||
eval $LOGFS
|
||||
local network_data='' if_id='N/A' duplex='N/A' mac_id='N/A' speed='N/A' oper_state='N/A'
|
||||
local b_is_wifi='false' speed_string='' duplex_string=''
|
||||
|
||||
if [[ $B_SHOW_ADVANCED_NETWORK == 'true' ]];then
|
||||
# first check if it's a known wifi id'ed card, if so, no print of duplex/speed
|
||||
if [[ -n $( grep -Esi '(wireless|wifi|wi-fi|wlan)' <<< ${a_network_working[0]} ) ]];then
|
||||
b_is_wifi='true'
|
||||
fi
|
||||
if [[ -n ${a_network_working[5]} ]];then
|
||||
if_id=${a_network_working[5]}
|
||||
fi
|
||||
if [[ -n ${a_network_working[6]} ]];then
|
||||
oper_state=${a_network_working[6]}
|
||||
fi
|
||||
if [[ -n ${a_network_working[7]} ]];then
|
||||
# make sure the value is strictly numeric before appending Mbps
|
||||
if [[ -n $( grep -E '^[0-9\.,]+$' <<< "${a_network_working[7]}" ) ]];then
|
||||
speed="${a_network_working[7]} Mbps"
|
||||
else
|
||||
speed=${a_network_working[7]}
|
||||
# no print out for wifi since it doesn't have duplex/speed data availabe
|
||||
if [[ $b_is_wifi != 'true' ]];then
|
||||
if [[ -n ${a_network_working[7]} ]];then
|
||||
# make sure the value is strictly numeric before appending Mbps
|
||||
if [[ -n $( grep -E '^[0-9\.,]+$' <<< "${a_network_working[7]}" ) ]];then
|
||||
speed="${a_network_working[7]} Mbps"
|
||||
else
|
||||
speed=${a_network_working[7]}
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
if [[ -n ${a_network_working[8]} ]];then
|
||||
duplex=${a_network_working[8]}
|
||||
speed_string="${C1}speed:${C2} $speed "
|
||||
if [[ -n ${a_network_working[8]} ]];then
|
||||
duplex=${a_network_working[8]}
|
||||
fi
|
||||
duplex_string="${C1}duplex:${C2} $duplex "
|
||||
fi
|
||||
if [[ -n ${a_network_working[9]} ]];then
|
||||
if [[ $B_RUNNING_IN_SHELL == 'true' ]];then
|
||||
|
@ -5403,8 +5487,7 @@ print_network_advanced_data()
|
|||
mac_id='<irc-filter>'
|
||||
fi
|
||||
fi
|
||||
network_data="${C1}IF:${C2} $if_id ${C1}state:${C2} $oper_state ${C1}speed:${C2} $speed"
|
||||
network_data="$network_data ${C1}duplex:${C2} $duplex ${C1}mac:${C2} $mac_id"
|
||||
network_data="${C1}IF:${C2} $if_id ${C1}state:${C2} $oper_state $speed_string$duplex_string${C1}mac:${C2} $mac_id"
|
||||
network_data=$( create_print_line " " "$network_data" )
|
||||
print_screen_output "$network_data"
|
||||
fi
|
||||
|
|
Loading…
Reference in a new issue