mirror of
https://github.com/smxi/inxi.git
synced 2025-03-13 06:12:20 +00:00
New version, new tarball. Added an optional downloader: Perl HTTP::Tiny
Note that this is the last choice because it's slow, the order has been revised: 1. curl 2. wget 3. fetch 4. Perl 5 HTTP::Tiny 5. OpenBSD ftp wget has been downgraded due to the recent 1.19-2 bug with wget -O that did not get resolved quickly, and which should never have been released since that's a basic wget action, which means they aren't testing gnu wget the way they should be. All inxi downloaders can now use this option. However, in my tests it's signicantly slower to use HTTP::Tiny than curl or wget, so inxi will test for the downloaders in that order. While -i uses dig as it's primary IP tool, if dig is not installed, the IP will follow the same downloader priority. -U and -w/-W use downloaders. Because HTTP::Tiny is optional, and is merely used if wget/curl/fetch are not installed, I would not consider Perl to be a real dependency yet, just an option, so I guess for packager maintainers, Perl should be added as a recommends, or a dependency if you want to fully support the debugger options (Core Modules). While I'm still not sure which Perl modules I'm going to be using, I'm sticking for now to Core Modules, the standard, with some experimental exceptions that would only be used if the user had them present. Long term the goal is to get rid of as many dependencies as possible, replacing them were possible with Perl tools, but this is going to take forever, if it ever happens, so don't hold your breath. In the future, I expect more and more components that were gawk to be rewritten to Perl (Core Modules), slowly, however, very slowly. Updated --recommends to indicate the downloader options more clearly as well. Added new options for bypassing curl (-! 41), fetch (-! 42) wget (-! 43), or curl, fetch, and wget (-! 44) to disable all of them. This is in case one of those is broken or you want to test Perl downloader, mostly. Also cleaned up debugger output and made debugger portable to other scripts.
This commit is contained in:
parent
94fd334292
commit
e7903dc02c
410
inxi
410
inxi
|
@ -2,8 +2,8 @@
|
||||||
########################################################################
|
########################################################################
|
||||||
SELF_NAME='inxi'
|
SELF_NAME='inxi'
|
||||||
# don't quote the following, parsers grab these too
|
# don't quote the following, parsers grab these too
|
||||||
SELF_VERSION=2.3.45
|
SELF_VERSION=2.3.46
|
||||||
SELF_DATE=2017-11-21
|
SELF_DATE=2017-11-26
|
||||||
SELF_PATCH=00
|
SELF_PATCH=00
|
||||||
########################################################################
|
########################################################################
|
||||||
#### SPECIAL THANKS
|
#### SPECIAL THANKS
|
||||||
|
@ -61,8 +61,8 @@ SELF_PATCH=00
|
||||||
####
|
####
|
||||||
#### 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); lspci (pciutils);
|
#### gawk (gawk); grep (grep); lspci (pciutils); ps; find (findutils);
|
||||||
#### ps, find (findutils)
|
#### perl (Modules: [HTTP::Tiny IF NO wget/curl/fetch/ftp]; Net::FTP; File::Find);
|
||||||
#### * Also the proc filesystem should be present and mounted for Linux
|
#### * Also the proc filesystem should be present and mounted for Linux
|
||||||
#### * Some features, like -M and -d will not work, or will work incompletely,
|
#### * Some features, like -M and -d will not work, or will work incompletely,
|
||||||
#### if /sys is missing
|
#### if /sys is missing
|
||||||
|
@ -290,6 +290,7 @@ B_COLOR_SCHEME_SET='false'
|
||||||
B_CONSOLE_IRC='false'
|
B_CONSOLE_IRC='false'
|
||||||
# triggers full display of cpu flags
|
# triggers full display of cpu flags
|
||||||
B_CPU_FLAGS_FULL='false'
|
B_CPU_FLAGS_FULL='false'
|
||||||
|
B_CURL='true'
|
||||||
# test for dbus irc client
|
# test for dbus irc client
|
||||||
B_DBUS_CLIENT='false'
|
B_DBUS_CLIENT='false'
|
||||||
# kde dcop
|
# kde dcop
|
||||||
|
@ -303,6 +304,7 @@ B_DMIDECODE_SET='false'
|
||||||
B_EXTRA_DATA='false'
|
B_EXTRA_DATA='false'
|
||||||
# triggered by -xx
|
# triggered by -xx
|
||||||
B_EXTRA_EXTRA_DATA='false'
|
B_EXTRA_EXTRA_DATA='false'
|
||||||
|
B_FETCH='true'
|
||||||
B_FORCE_DMIDECODE='false'
|
B_FORCE_DMIDECODE='false'
|
||||||
B_ID_SET='false'
|
B_ID_SET='false'
|
||||||
# override certain errors due to currupted data
|
# override certain errors due to currupted data
|
||||||
|
@ -381,6 +383,7 @@ B_USB_NETWORKING='false'
|
||||||
# set to true here for debug logging from script start
|
# set to true here for debug logging from script start
|
||||||
B_USE_LOGGING='false'
|
B_USE_LOGGING='false'
|
||||||
B_UUID_SET='false'
|
B_UUID_SET='false'
|
||||||
|
B_WGET='true'
|
||||||
B_XORG_LOG='false'
|
B_XORG_LOG='false'
|
||||||
|
|
||||||
## Directory/file exist flags; test as [[ $(boolean) ]] not [[ $boolean ]]
|
## Directory/file exist flags; test as [[ $(boolean) ]] not [[ $boolean ]]
|
||||||
|
@ -917,30 +920,12 @@ initialize_data()
|
||||||
else
|
else
|
||||||
error_handler 6
|
error_handler 6
|
||||||
fi
|
fi
|
||||||
|
|
||||||
initialize_paths
|
initialize_paths
|
||||||
|
|
||||||
if type -p dig &>/dev/null;then
|
if type -p dig &>/dev/null;then
|
||||||
DNSTOOL='dig'
|
DNSTOOL='dig'
|
||||||
fi
|
fi
|
||||||
# set downloaders.
|
# set downloaders.
|
||||||
if ! type -p wget &>/dev/null;then
|
set_downloader
|
||||||
# first check for bsd stuff
|
|
||||||
if type -p fetch &>/dev/null;then
|
|
||||||
DOWNLOADER='fetch'
|
|
||||||
NO_SSL=' --no-verify-peer'
|
|
||||||
elif type -p curl &>/dev/null;then
|
|
||||||
DOWNLOADER='curl'
|
|
||||||
NO_SSL=' --insecure'
|
|
||||||
elif [[ $BSD_VERSION == 'openbsd' ]] && type -p ftp &>/dev/null;then
|
|
||||||
DOWNLOADER='ftp'
|
|
||||||
else
|
|
||||||
DOWNLOADER='no-downloader'
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
NO_SSL=' --no-check-certificate'
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -n $BSD_TYPE ]];then
|
if [[ -n $BSD_TYPE ]];then
|
||||||
if [[ -e $FILE_DMESG_BOOT ]];then
|
if [[ -e $FILE_DMESG_BOOT ]];then
|
||||||
B_DMESG_BOOT_FILE='true'
|
B_DMESG_BOOT_FILE='true'
|
||||||
|
@ -1007,6 +992,30 @@ initialize_data()
|
||||||
fi
|
fi
|
||||||
eval $LOGFE
|
eval $LOGFE
|
||||||
}
|
}
|
||||||
|
set_downloader()
|
||||||
|
{
|
||||||
|
# curl/wget are faster than HTTP::Tiny
|
||||||
|
if $B_CURL == 'true' && type -p curl &>/dev/null;then
|
||||||
|
DOWNLOADER='curl'
|
||||||
|
NO_SSL=' --insecure'
|
||||||
|
# wget has had some issues with not testing their code leading to -O failure
|
||||||
|
elif $B_WGET == 'true' && type -p wget &>/dev/null;then
|
||||||
|
DOWNLOADER='wget'
|
||||||
|
NO_SSL=' --no-check-certificate'
|
||||||
|
# check for bsd stuff
|
||||||
|
elif $B_FETCH == 'true' && type -p fetch &>/dev/null;then
|
||||||
|
DOWNLOADER='fetch'
|
||||||
|
NO_SSL=' --no-verify-peer'
|
||||||
|
# this is much slower than curl or wget
|
||||||
|
elif type -p perl &>/dev/null && perl -MHTTP::Tiny -e 1 &>/dev/null;then
|
||||||
|
DOWNLOADER='perl' # does not use ssl by default
|
||||||
|
elif [[ $BSD_VERSION == 'openbsd' ]] && type -p ftp &>/dev/null;then
|
||||||
|
DOWNLOADER='ftp'
|
||||||
|
else
|
||||||
|
DOWNLOADER='no-downloader'
|
||||||
|
fi
|
||||||
|
# echo $DOWNLOADER
|
||||||
|
}
|
||||||
|
|
||||||
# args: $1 - default OR override default cols max integer count
|
# args: $1 - default OR override default cols max integer count
|
||||||
set_display_width()
|
set_display_width()
|
||||||
|
@ -1633,6 +1642,9 @@ script_self_updater()
|
||||||
ftp)
|
ftp)
|
||||||
file_contents="$( ftp $NO_SSL_OPT -o - $1$SELF_NAME 2>/dev/null )" || downloader_error=$?
|
file_contents="$( ftp $NO_SSL_OPT -o - $1$SELF_NAME 2>/dev/null )" || downloader_error=$?
|
||||||
;;
|
;;
|
||||||
|
perl)
|
||||||
|
file_contents="$( download_file 'stdout' $1$SELF_NAME )" || downloader_error=$?
|
||||||
|
;;
|
||||||
wget)
|
wget)
|
||||||
file_contents="$( wget $NO_SSL_OPT -q -O - $1$SELF_NAME )" || downloader_error=$?
|
file_contents="$( wget $NO_SSL_OPT -q -O - $1$SELF_NAME )" || downloader_error=$?
|
||||||
;;
|
;;
|
||||||
|
@ -1670,9 +1682,14 @@ script_self_updater()
|
||||||
exec $( type -p mandb ) -q
|
exec $( type -p mandb ) -q
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if [[ $DOWNLOADER == 'wget' ]];then
|
case $DOWNLOADER in
|
||||||
|
perl)
|
||||||
|
download_file 'spider' $MAN_FILE_DOWNLOAD || downloader_man_error=$?
|
||||||
|
;;
|
||||||
|
wget)
|
||||||
wget $NO_SSL_OPT -q --spider $MAN_FILE_DOWNLOAD || downloader_man_error=$?
|
wget $NO_SSL_OPT -q --spider $MAN_FILE_DOWNLOAD || downloader_man_error=$?
|
||||||
fi
|
;;
|
||||||
|
esac
|
||||||
if [[ $downloader_man_error -eq 0 ]];then
|
if [[ $downloader_man_error -eq 0 ]];then
|
||||||
if [[ $DOWNLOADER == 'wget' ]];then
|
if [[ $DOWNLOADER == 'wget' ]];then
|
||||||
print_screen_output "Man file download URL verified: $MAN_FILE_DOWNLOAD"
|
print_screen_output "Man file download URL verified: $MAN_FILE_DOWNLOAD"
|
||||||
|
@ -1688,6 +1705,9 @@ script_self_updater()
|
||||||
ftp)
|
ftp)
|
||||||
ftp $NO_SSL_OPT -o $man_file_path $MAN_FILE_DOWNLOAD 2>/dev/null || downloader_man_error=$?
|
ftp $NO_SSL_OPT -o $man_file_path $MAN_FILE_DOWNLOAD 2>/dev/null || downloader_man_error=$?
|
||||||
;;
|
;;
|
||||||
|
perl)
|
||||||
|
download_file 'file' $MAN_FILE_DOWNLOAD $man_file_path || downloader_man_error=$?
|
||||||
|
;;
|
||||||
wget)
|
wget)
|
||||||
wget $NO_SSL_OPT -q -O $man_file_path $MAN_FILE_DOWNLOAD || downloader_man_error=$?
|
wget $NO_SSL_OPT -q -O $man_file_path $MAN_FILE_DOWNLOAD || downloader_man_error=$?
|
||||||
;;
|
;;
|
||||||
|
@ -1763,9 +1783,10 @@ set_man_location()
|
||||||
# args: $1 - debug data type: sys|xorg|disk
|
# args: $1 - debug data type: sys|xorg|disk
|
||||||
debug_data_collector()
|
debug_data_collector()
|
||||||
{
|
{
|
||||||
local sys_data_file='' error='' Debug_Data_Dir='' bsd_string=''
|
local b_inxi='true' b_recommends='true' b_repo='true'
|
||||||
|
local sys_data_file='' error='' bsd_string='' sys_traverse_data=''
|
||||||
local xorg_d_files='' xorg_file='' a_distro_ids=''
|
local xorg_d_files='' xorg_file='' a_distro_ids=''
|
||||||
local completed_gz_file='' ftp_upload='ftp.techpatterns.com/incoming'
|
local completed_gz_file='' Ftp_Upload='ftp.techpatterns.com/incoming'
|
||||||
local Line='-------------------------'
|
local Line='-------------------------'
|
||||||
local start_directory=$( pwd )
|
local start_directory=$( pwd )
|
||||||
local host='' debug_i='' root_string='' b_traverse_worked='false' b_uploaded='false'
|
local host='' debug_i='' root_string='' b_traverse_worked='false' b_uploaded='false'
|
||||||
|
@ -1789,25 +1810,29 @@ debug_data_collector()
|
||||||
if [[ $( whoami ) == 'root' ]];then
|
if [[ $( whoami ) == 'root' ]];then
|
||||||
root_string='-root'
|
root_string='-root'
|
||||||
fi
|
fi
|
||||||
Debug_Data_Dir="inxi$bsd_string-$host-$(date +%Y%m%d-%H%M%S)-$1$root_string"
|
local Debug_Data_Dir="$SELF_NAME$bsd_string-$host-$(date +%Y%m%d-%H%M%S)-$1$root_string"
|
||||||
|
local debug_gz="$Debug_Data_Dir.tar.gz"
|
||||||
|
|
||||||
if [[ $B_IRC == 'false' ]];then
|
if [[ $B_IRC == 'false' ]];then
|
||||||
if [[ -n $ALTERNATE_FTP ]];then
|
if [[ -n $ALTERNATE_FTP ]];then
|
||||||
ftp_upload=$ALTERNATE_FTP
|
Ftp_Upload=$ALTERNATE_FTP
|
||||||
fi
|
fi
|
||||||
echo "Starting debugging data collection type: $1"
|
echo "Starting $SELF_NAME debugging data collection type: $1"
|
||||||
cd $SELF_DATA_DIR
|
cd $SELF_DATA_DIR
|
||||||
if [[ -d $SELF_DATA_DIR/$Debug_Data_Dir ]];then
|
if [[ -d $SELF_DATA_DIR/$Debug_Data_Dir ]];then
|
||||||
echo "Deleting previous $SELF_NAME debugger data directory..."
|
echo "Deleting previous $SELF_NAME debugger data directory..."
|
||||||
rm -rf $SELF_DATA_DIR/$Debug_Data_Dir
|
rm -rf $SELF_DATA_DIR/$Debug_Data_Dir
|
||||||
fi
|
fi
|
||||||
mkdir $SELF_DATA_DIR/$Debug_Data_Dir
|
mkdir $SELF_DATA_DIR/$Debug_Data_Dir
|
||||||
if [[ -f $SELF_DATA_DIR/$Debug_Data_Dir.tar.gz ]];then
|
if [[ -f $SELF_DATA_DIR/$debug_gz ]];then
|
||||||
echo 'Deleting previous tar.gz file...'
|
echo 'Deleting previous tar.gz file...'
|
||||||
rm -f $SELF_DATA_DIR/$Debug_Data_Dir.tar.gz
|
rm -f $SELF_DATA_DIR/$debug_gz
|
||||||
fi
|
fi
|
||||||
echo 'Collecting system info: sensors, lsusb, lspci, lspci -v data, plus /proc data'
|
|
||||||
echo 'also checking for dmidecode data: note, you must be root to have dmidecode work.'
|
|
||||||
echo "Data going into: $SELF_DATA_DIR/$Debug_Data_Dir"
|
echo "Data going into: $SELF_DATA_DIR/$Debug_Data_Dir"
|
||||||
|
echo 'Note: for dmidecode data you must be root.'
|
||||||
|
echo $Line
|
||||||
|
echo "Collecting system data..."
|
||||||
|
|
||||||
# bsd tools http://cb.vu/unixtoolbox.xhtml
|
# bsd tools http://cb.vu/unixtoolbox.xhtml
|
||||||
# freebsd
|
# freebsd
|
||||||
if type -p pciconf &>/dev/null;then
|
if type -p pciconf &>/dev/null;then
|
||||||
|
@ -1849,19 +1874,6 @@ debug_data_collector()
|
||||||
# diskinfo -v <disk>
|
# diskinfo -v <disk>
|
||||||
# fdisk <disk>
|
# fdisk <disk>
|
||||||
dmidecode &> $Debug_Data_Dir/dmidecode.txt
|
dmidecode &> $Debug_Data_Dir/dmidecode.txt
|
||||||
get_repo_data "$SELF_DATA_DIR/$Debug_Data_Dir"
|
|
||||||
if type -p shopt &>/dev/null;then
|
|
||||||
shopt -s nullglob
|
|
||||||
a_distro_ids=(/etc/*[-_]{release,version})
|
|
||||||
shopt -u nullglob
|
|
||||||
echo ${a_distro_ids[@]} &> $Debug_Data_Dir/etc-distro-files.txt
|
|
||||||
for distro_file in ${a_distro_ids[@]} /etc/issue
|
|
||||||
do
|
|
||||||
if [[ -f $distro_file ]];then
|
|
||||||
cat $distro_file &> $Debug_Data_Dir/distro-file${distro_file//\//-}
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
dmesg &> $Debug_Data_Dir/dmesg.txt
|
dmesg &> $Debug_Data_Dir/dmesg.txt
|
||||||
lscpu &> $Debug_Data_Dir/lscpu.txt
|
lscpu &> $Debug_Data_Dir/lscpu.txt
|
||||||
lspci &> $Debug_Data_Dir/lspci.txt
|
lspci &> $Debug_Data_Dir/lspci.txt
|
||||||
|
@ -1879,12 +1891,9 @@ debug_data_collector()
|
||||||
else
|
else
|
||||||
touch $Debug_Data_Dir/hciconfig-absent
|
touch $Debug_Data_Dir/hciconfig-absent
|
||||||
fi
|
fi
|
||||||
ls /sys &> $Debug_Data_Dir/ls-sys.txt
|
|
||||||
ps aux &> $Debug_Data_Dir/ps-aux.txt
|
ps aux &> $Debug_Data_Dir/ps-aux.txt
|
||||||
ps -e &> $Debug_Data_Dir/ps-e.txt
|
ps -e &> $Debug_Data_Dir/ps-e.txt
|
||||||
ps -p 1 &> $Debug_Data_Dir/ps-p-1.txt
|
ps -p 1 &> $Debug_Data_Dir/ps-p-1.txt
|
||||||
echo "Collecting init data..."
|
|
||||||
cat /proc/1/comm &> $Debug_Data_Dir/proc-1-comm.txt
|
|
||||||
runlevel &> $Debug_Data_Dir/runlevel.txt
|
runlevel &> $Debug_Data_Dir/runlevel.txt
|
||||||
if type -p rc-status &>/dev/null;then
|
if type -p rc-status &>/dev/null;then
|
||||||
rc-status -a &> $Debug_Data_Dir/rc-status-a.txt
|
rc-status -a &> $Debug_Data_Dir/rc-status-a.txt
|
||||||
|
@ -1910,17 +1919,6 @@ debug_data_collector()
|
||||||
else
|
else
|
||||||
touch $Debug_Data_Dir/strings-absent
|
touch $Debug_Data_Dir/strings-absent
|
||||||
fi
|
fi
|
||||||
local id_dir='/sys/class/power_supply/'
|
|
||||||
local ids=$( ls $id_dir 2>/dev/null )
|
|
||||||
if [[ -n $ids ]];then
|
|
||||||
for batid in $ids
|
|
||||||
do
|
|
||||||
cat $id_dir$batid'/uevent' &> $Debug_Data_Dir/sys-power-supply-$batid.txt
|
|
||||||
done
|
|
||||||
else
|
|
||||||
touch $Debug_Data_Dir/sys-power-supply-none
|
|
||||||
fi
|
|
||||||
|
|
||||||
# leaving this commented out to remind that some systems do not
|
# leaving this commented out to remind that some systems do not
|
||||||
# support strings --version, but will just simply hang at that command
|
# support strings --version, but will just simply hang at that command
|
||||||
# which you can duplicate by simply typing: strings then hitting enter, you will get hang.
|
# which you can duplicate by simply typing: strings then hitting enter, you will get hang.
|
||||||
|
@ -1931,12 +1929,6 @@ debug_data_collector()
|
||||||
else
|
else
|
||||||
touch $Debug_Data_Dir/nvidia-smi-absent
|
touch $Debug_Data_Dir/nvidia-smi-absent
|
||||||
fi
|
fi
|
||||||
head -n 1 /proc/asound/card*/codec* &> $Debug_Data_Dir/proc-asound-card-codec.txt
|
|
||||||
if [[ -f /proc/version ]];then
|
|
||||||
cat /proc/version &> $Debug_Data_Dir/proc-version.txt
|
|
||||||
else
|
|
||||||
touch $Debug_Data_Dir/proc-version-absent
|
|
||||||
fi
|
|
||||||
echo $CC &> $Debug_Data_Dir/cc-content.txt
|
echo $CC &> $Debug_Data_Dir/cc-content.txt
|
||||||
ls /usr/bin/gcc* &> $Debug_Data_Dir/gcc-sys-versions.txt
|
ls /usr/bin/gcc* &> $Debug_Data_Dir/gcc-sys-versions.txt
|
||||||
if type -p gcc &>/dev/null;then
|
if type -p gcc &>/dev/null;then
|
||||||
|
@ -1954,11 +1946,46 @@ debug_data_collector()
|
||||||
else
|
else
|
||||||
touch $Debug_Data_Dir/systemd-detect-virt-absent
|
touch $Debug_Data_Dir/systemd-detect-virt-absent
|
||||||
fi
|
fi
|
||||||
|
echo "Collecting Perl module data..."
|
||||||
if type -p perl &>/dev/null;then
|
if type -p perl &>/dev/null;then
|
||||||
perl -MFile::Find=find -MFile::Spec::Functions -Tlwe 'find { wanted => sub { print canonpath $_ if /\.pm\z/ }, no_chdir => 1 }, @INC' &> $Debug_Data_Dir/perl-modules.txt
|
perl -MFile::Find=find -MFile::Spec::Functions -Tlwe 'find { wanted => sub { print canonpath $_ if /\.pm\z/ }, no_chdir => 1 }, @INC' 2>/dev/null | sort &> $Debug_Data_Dir/perl-modules.txt
|
||||||
else
|
else
|
||||||
touch $Debug_Data_Dir/perl-missing.txt
|
touch $Debug_Data_Dir/perl-missing.txt
|
||||||
fi
|
fi
|
||||||
|
echo "Collecting system file data..."
|
||||||
|
ls /sys &> $Debug_Data_Dir/ls-sys.txt
|
||||||
|
cat /proc/1/comm &> $Debug_Data_Dir/proc-1-comm.txt
|
||||||
|
if [[ $b_repo == 'true' ]];then
|
||||||
|
get_repo_data "$SELF_DATA_DIR/$Debug_Data_Dir"
|
||||||
|
fi
|
||||||
|
head -n 1 /proc/asound/card*/codec* &> $Debug_Data_Dir/proc-asound-card-codec.txt
|
||||||
|
if [[ -f /proc/version ]];then
|
||||||
|
cat /proc/version &> $Debug_Data_Dir/proc-version.txt
|
||||||
|
else
|
||||||
|
touch $Debug_Data_Dir/proc-version-absent
|
||||||
|
fi
|
||||||
|
local id_dir='/sys/class/power_supply/'
|
||||||
|
local ids=$( ls $id_dir 2>/dev/null )
|
||||||
|
if [[ -n $ids ]];then
|
||||||
|
for batid in $ids
|
||||||
|
do
|
||||||
|
cat $id_dir$batid'/uevent' &> $Debug_Data_Dir/sys-power-supply-$batid.txt
|
||||||
|
done
|
||||||
|
else
|
||||||
|
touch $Debug_Data_Dir/sys-power-supply-none
|
||||||
|
fi
|
||||||
|
if type -p shopt &>/dev/null;then
|
||||||
|
shopt -s nullglob
|
||||||
|
a_distro_ids=(/etc/*[-_]{release,version})
|
||||||
|
shopt -u nullglob
|
||||||
|
echo ${a_distro_ids[@]} &> $Debug_Data_Dir/etc-distro-files.txt
|
||||||
|
for distro_file in ${a_distro_ids[@]} /etc/issue
|
||||||
|
do
|
||||||
|
if [[ -f $distro_file ]];then
|
||||||
|
cat $distro_file &> $Debug_Data_Dir/distro-file${distro_file//\//-}
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
cat /etc/src.conf &> $Debug_Data_Dir/bsd-etc-src-conf.txt
|
cat /etc/src.conf &> $Debug_Data_Dir/bsd-etc-src-conf.txt
|
||||||
cat /etc/make.conf &> $Debug_Data_Dir/bsd-etc-make-conf.txt
|
cat /etc/make.conf &> $Debug_Data_Dir/bsd-etc-make-conf.txt
|
||||||
cat /etc/issue &> $Debug_Data_Dir/etc-issue.txt
|
cat /etc/issue &> $Debug_Data_Dir/etc-issue.txt
|
||||||
|
@ -1977,8 +2004,9 @@ debug_data_collector()
|
||||||
echo $XDG_CONFIG_DIRS &> $Debug_Data_Dir/xdg_config_dirs.txt
|
echo $XDG_CONFIG_DIRS &> $Debug_Data_Dir/xdg_config_dirs.txt
|
||||||
echo $XDG_DATA_HOME &> $Debug_Data_Dir/xdg_data_home.txt
|
echo $XDG_DATA_HOME &> $Debug_Data_Dir/xdg_data_home.txt
|
||||||
echo $XDG_DATA_DIRS &> $Debug_Data_Dir/xdg_data_dirs.txt
|
echo $XDG_DATA_DIRS &> $Debug_Data_Dir/xdg_data_dirs.txt
|
||||||
|
if [[ $b_recommends == 'true' ]];then
|
||||||
check_recommends_user_output &> $Debug_Data_Dir/check-recommends-user-output.txt
|
check_recommends_user_output &> $Debug_Data_Dir/check-recommends-user-output.txt
|
||||||
|
fi
|
||||||
if [[ $1 == 'xorg' || $1 == 'all' ]];then
|
if [[ $1 == 'xorg' || $1 == 'all' ]];then
|
||||||
if [[ $B_RUNNING_IN_DISPLAY != 'true' ]];then
|
if [[ $B_RUNNING_IN_DISPLAY != 'true' ]];then
|
||||||
echo 'Warning: only some of the data collection can occur if you are not in X'
|
echo 'Warning: only some of the data collection can occur if you are not in X'
|
||||||
|
@ -1988,7 +2016,7 @@ debug_data_collector()
|
||||||
echo 'Warning: only some of the data collection can occur if you are running as Root user'
|
echo 'Warning: only some of the data collection can occur if you are running as Root user'
|
||||||
touch $Debug_Data_Dir/warning-root-user
|
touch $Debug_Data_Dir/warning-root-user
|
||||||
fi
|
fi
|
||||||
echo 'Collecting Xorg log and xorg.conf files'
|
echo 'Collecting Xorg log and xorg.conf files...'
|
||||||
if [[ -e $FILE_XORG_LOG ]];then
|
if [[ -e $FILE_XORG_LOG ]];then
|
||||||
cat $FILE_XORG_LOG &> $Debug_Data_Dir/xorg-log-file.txt
|
cat $FILE_XORG_LOG &> $Debug_Data_Dir/xorg-log-file.txt
|
||||||
else
|
else
|
||||||
|
@ -2180,7 +2208,73 @@ debug_data_collector()
|
||||||
if type -p perl &>/dev/null;then
|
if type -p perl &>/dev/null;then
|
||||||
echo "Parsing /sys files..."
|
echo "Parsing /sys files..."
|
||||||
echo -n "Using Perl: " && perl --version | grep -oE 'v[0-9.]+'
|
echo -n "Using Perl: " && perl --version | grep -oE 'v[0-9.]+'
|
||||||
sys_traverse_data="$( perl -e '
|
sys_traverse_data="$( sys_traverse_data )"
|
||||||
|
if [[ -z "$sys_traverse_data" ]];then
|
||||||
|
echo -e "ERROR: failed to generate /sys data - removing data file.\nContinuing with incomplete data collection."
|
||||||
|
echo "Continuing with incomplete data collection."
|
||||||
|
rm -f $sys_data_file
|
||||||
|
echo "/sys data generation failed. No data collected." >> $Debug_Data_Dir/sys-dir-error.txt
|
||||||
|
else
|
||||||
|
b_traverse_worked='true'
|
||||||
|
echo 'Completed /sys data collection.'
|
||||||
|
echo -n "$sys_traverse_data" > $sys_data_file
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [[ $b_inxi == 'true' ]];then
|
||||||
|
echo $Line
|
||||||
|
echo "Creating $SELF_NAME output file now. This can take a few seconds..."
|
||||||
|
echo "Starting $SELF_NAME from: $start_directory"
|
||||||
|
cd $start_directory
|
||||||
|
$SELF_PATH/$SELF_NAME -F${debug_i}Rfrploudmxxx -c 0 -@ 8 -y 120 > $SELF_DATA_DIR/$Debug_Data_Dir/inxi-F${debug_i}Rfrploudmxxxy120.txt
|
||||||
|
cp $LOG_FILE $SELF_DATA_DIR/$Debug_Data_Dir
|
||||||
|
elif type -p inxi &>/dev/null;then
|
||||||
|
echo $Line
|
||||||
|
echo "Creating basic inxi output file..."
|
||||||
|
inxi -Fxxx > $Debug_Data_Dir/inxi-Fxxx.txt
|
||||||
|
else
|
||||||
|
touch $Debug_Data_Dir/inxi-absent.txt
|
||||||
|
fi
|
||||||
|
cd $SELF_DATA_DIR
|
||||||
|
echo $Line
|
||||||
|
echo 'Creating tar.gz compressed file of this material...'
|
||||||
|
tar -czf $debug_gz $Debug_Data_Dir
|
||||||
|
echo 'Cleaning up leftovers...'
|
||||||
|
rm -rf $Debug_Data_Dir
|
||||||
|
echo 'Testing gzip file integrity...'
|
||||||
|
gzip -t $debug_gz
|
||||||
|
if [[ $? -gt 0 ]];then
|
||||||
|
echo 'Data in gz is corrupted, removing gzip file, try running data collector again.'
|
||||||
|
rm -f $debug_gz
|
||||||
|
echo "Data in gz is corrupted, removed gzip file" >> $Debug_Data_Dir/gzip-error.txt
|
||||||
|
else
|
||||||
|
echo 'All done, you can find your data gzipped directory here:'
|
||||||
|
completed_gz_file=$SELF_DATA_DIR/$debug_gz
|
||||||
|
echo $completed_gz_file
|
||||||
|
if [[ $B_UPLOAD_DEBUG_DATA == 'true' ]];then
|
||||||
|
echo $Line
|
||||||
|
if [[ $b_traverse_worked == 'true' ]];then
|
||||||
|
upload_debugger_data "$completed_gz_file" "$Ftp_Upload"
|
||||||
|
if [[ $? -gt 0 ]];then
|
||||||
|
echo "Error: looks like the Perl ftp upload failed. Error number: $?"
|
||||||
|
else
|
||||||
|
b_uploaded='true'
|
||||||
|
echo "Hurray! Looks like the Perl ftp upload worked!"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo 'You can upload this here using most file managers: ftp.techpatterns.com/incoming'
|
||||||
|
echo 'then let a maintainer know it is uploaded.'
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo 'This feature only available in console or shell client! Exiting now.'
|
||||||
|
fi
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
sys_traverse_data()
|
||||||
|
{
|
||||||
|
local sys_traverse_data="$( perl -e '
|
||||||
use File::Find;
|
use File::Find;
|
||||||
use strict;
|
use strict;
|
||||||
# use warnings;
|
# use warnings;
|
||||||
|
@ -2229,65 +2323,7 @@ debug_data_collector()
|
||||||
# print scalar @content . "\n";
|
# print scalar @content . "\n";
|
||||||
print "$result";
|
print "$result";
|
||||||
} ' )"
|
} ' )"
|
||||||
if [[ -z "$sys_traverse_data" ]];then
|
echo "$sys_traverse_data"
|
||||||
echo -e "ERROR: failed to generate /sys data - removing data file.\nContinuing with incomplete data collection."
|
|
||||||
echo "Continuing with incomplete data collection."
|
|
||||||
rm -f $sys_data_file
|
|
||||||
echo "/sys data generation failed. No data collected." >> $Debug_Data_Dir/sys-dir-error.txt
|
|
||||||
else
|
|
||||||
b_traverse_worked='true'
|
|
||||||
echo 'Completed /sys data collection.'
|
|
||||||
echo -n "$sys_traverse_data" > $sys_data_file
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
echo $Line
|
|
||||||
echo "Creating $SELF_NAME output file now. This can take a few seconds..."
|
|
||||||
echo "Starting $SELF_NAME from: $start_directory"
|
|
||||||
cd $start_directory
|
|
||||||
$SELF_PATH/$SELF_NAME -F${debug_i}Rfrploudmxxx -c 0 -@ 8 -y 120 > $SELF_DATA_DIR/$Debug_Data_Dir/inxi-F${debug_i}Rfrploudmxxxy120.txt
|
|
||||||
cp $LOG_FILE $SELF_DATA_DIR/$Debug_Data_Dir
|
|
||||||
if [[ -f $SELF_DATA_DIR/$Debug_Data_Dir.tar.gz ]];then
|
|
||||||
echo "Found and removing previous tar.gz data file: $Debug_Data_Dir.tar.gz"
|
|
||||||
rm -f $SELF_DATA_DIR/$Debug_Data_Dir.tar.gz
|
|
||||||
fi
|
|
||||||
cd $SELF_DATA_DIR
|
|
||||||
echo 'Creating tar.gz compressed file of this material now. Contents:'
|
|
||||||
echo $Line
|
|
||||||
tar -cvzf $Debug_Data_Dir.tar.gz $Debug_Data_Dir
|
|
||||||
echo $Line
|
|
||||||
echo 'Cleaning up leftovers...'
|
|
||||||
rm -rf $Debug_Data_Dir
|
|
||||||
echo 'Testing gzip file integrity...'
|
|
||||||
gzip -t $Debug_Data_Dir.tar.gz
|
|
||||||
if [[ $? -gt 0 ]];then
|
|
||||||
echo 'Data in gz is corrupted, removing gzip file, try running data collector again.'
|
|
||||||
rm -f $Debug_Data_Dir.tar.gz
|
|
||||||
echo "Data in gz is corrupted, removed gzip file" >> $Debug_Data_Dir/gzip-error.txt
|
|
||||||
else
|
|
||||||
echo 'All done, you can find your data gzipped directory here:'
|
|
||||||
completed_gz_file=$SELF_DATA_DIR/$Debug_Data_Dir.tar.gz
|
|
||||||
echo $completed_gz_file
|
|
||||||
if [[ $B_UPLOAD_DEBUG_DATA == 'true' ]];then
|
|
||||||
echo $Line
|
|
||||||
if [[ $b_traverse_worked == 'true' ]];then
|
|
||||||
upload_debugger_data "$completed_gz_file"
|
|
||||||
if [[ $? -gt 0 ]];then
|
|
||||||
echo "Error: looks like the Perl ftp upload failed. Error number: $?"
|
|
||||||
else
|
|
||||||
b_uploaded='true'
|
|
||||||
echo "Hurray! Looks like the Perl ftp upload worked!"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo 'You can upload this here using most file managers: ftp.techpatterns.com/incoming'
|
|
||||||
echo 'then let a maintainer know it is uploaded.'
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo 'This feature only available in console or shell client! Exiting now.'
|
|
||||||
fi
|
|
||||||
exit 0
|
|
||||||
}
|
}
|
||||||
sys_tree()
|
sys_tree()
|
||||||
{
|
{
|
||||||
|
@ -2336,7 +2372,7 @@ ls_sys()
|
||||||
}' &> $Debug_Data_Dir/sys-ls-$1.txt
|
}' &> $Debug_Data_Dir/sys-ls-$1.txt
|
||||||
}
|
}
|
||||||
|
|
||||||
## args: $1 - debugger file name
|
## args: $1 - debugger file name; $2 - ftp destination [does not work]
|
||||||
upload_debugger_data()
|
upload_debugger_data()
|
||||||
{
|
{
|
||||||
local result='' debugger_file=$1
|
local result='' debugger_file=$1
|
||||||
|
@ -2380,22 +2416,65 @@ upload_debugger_data()
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
download_file()
|
||||||
|
{
|
||||||
|
local retvalue=0
|
||||||
|
local data=$( perl -e 'use strict;
|
||||||
|
use warnings;
|
||||||
|
use 5.008;
|
||||||
|
use HTTP::Tiny;
|
||||||
|
sub get_file {
|
||||||
|
my ($type, $url, $file) = @_;
|
||||||
|
my $response = HTTP::Tiny->new->get($url);
|
||||||
|
my $return = 0;
|
||||||
|
my $debug = 0;
|
||||||
|
my $fh;
|
||||||
|
|
||||||
|
if ($response->{success} == 0 ){
|
||||||
|
# print "Failed to connect to server/file!\n";
|
||||||
|
$return = 1;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if ( $debug ){
|
||||||
|
print "$response->{success}\n";
|
||||||
|
print "$response->{status} $response->{reason}\n";
|
||||||
|
while (my ($key, $value) = each %{$response->{headers}}) {
|
||||||
|
for (ref $value eq "ARRAY" ? @$value : $value) {
|
||||||
|
print "$key: $_\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ( $type eq "stdout" || $type eq "ua-stdout" ){
|
||||||
|
print "$response->{content}" if length $response->{content};
|
||||||
|
}
|
||||||
|
elsif ($type eq "spider"){
|
||||||
|
# do nothing, just use the return value
|
||||||
|
}
|
||||||
|
elsif ($type eq "file"){
|
||||||
|
open($fh, ">", $file);
|
||||||
|
print $fh $response->{content};
|
||||||
|
close $fh;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $return;
|
||||||
|
}
|
||||||
|
get_file($ARGV[0],$ARGV[1],$ARGV[2]);' "$1" "$2" "$3" )
|
||||||
|
retvalue=$?
|
||||||
|
echo "$data"
|
||||||
|
return $retvalue
|
||||||
|
}
|
||||||
|
#download_file 'stdout' 'https://smxi.org/ip' '';echo $?; exit
|
||||||
|
|
||||||
check_recommends_user_output()
|
check_recommends_user_output()
|
||||||
{
|
{
|
||||||
local Line=$LINE1
|
local Line=$LINE1
|
||||||
local gawk_version='N/A' sed_version='N/A' sudo_version='N/A' python_version='N/A'
|
local gawk_version='N/A' sed_version='N/A' sudo_version='N/A' python_version='N/A'
|
||||||
local downloaders_bsd='' perl_version='N/A'
|
local perl_version='N/A'
|
||||||
|
|
||||||
if [[ $B_IRC == 'true' ]];then
|
if [[ $B_IRC == 'true' ]];then
|
||||||
print_screen_output "Sorry, you can't run this option in an IRC client."
|
print_screen_output "Sorry, you can't run this option in an IRC client."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if [[ -n $BSD_TYPE ]];then
|
|
||||||
downloaders_bsd='
|
|
||||||
fetch:BSD-only~BSD-only~BSD-only~:-i_wan_ip;-w/-W;-U/-!_[11-15]_(BSDs)
|
|
||||||
ftp:ftp-OpenBSD-only~ftp-OpenBSD-only~ftp-OpenBSD-only~:-i_wan_ip;-w/-W;-U/-!_[11-15]_(OpenBSD_only)'
|
|
||||||
fi
|
|
||||||
initialize_paths
|
initialize_paths
|
||||||
print_lines_basic "0" "" "$SELF_NAME will now begin checking for the programs it needs to operate. First a check of the main languages and tools $SELF_NAME uses. Python is only for debugging data uploads unless Perl is missing."
|
print_lines_basic "0" "" "$SELF_NAME will now begin checking for the programs it needs to operate. First a check of the main languages and tools $SELF_NAME uses. Python is only for debugging data uploads unless Perl is missing."
|
||||||
echo $Line
|
echo $Line
|
||||||
|
@ -2472,15 +2551,23 @@ check_recommends_items()
|
||||||
{
|
{
|
||||||
local item='' item_list='' item_string='' missing_items='' missing_string=''
|
local item='' item_list='' item_string='' missing_items='' missing_string=''
|
||||||
local package='' application='' feature='' type='' starter='' finisher=''
|
local package='' application='' feature='' type='' starter='' finisher=''
|
||||||
local package_deb='' package_pacman='' package_rpm=''
|
local package_deb='' package_pacman='' package_rpm='' downloaders_bsd=''
|
||||||
local print_string='' separator='' width=56
|
local print_string='' separator='' width=56
|
||||||
local required_dirs='/proc /sys'
|
local required_dirs='/proc /sys'
|
||||||
|
|
||||||
|
if [[ -n $BSD_TYPE ]];then
|
||||||
|
downloaders_bsd='fetch:BSD-only~BSD-only~BSD-only~:-i_wan_ip;-w/-W;-U/-!_[11-15]_[OR]
|
||||||
|
ftp:ftp-OpenBSD-only~ftp-OpenBSD-only~ftp-OpenBSD-only~:-i_wan_ip;-w/-W;-U/-!_[11-15]_[OR]'
|
||||||
|
fi
|
||||||
# package-owner: 1 - debian/ubuntu; 2 - arch; 3 - yum/rpm
|
# package-owner: 1 - debian/ubuntu; 2 - arch; 3 - yum/rpm
|
||||||
# pardus: pisi sf -q /usr/bin/package
|
# pardus: pisi sf -q /usr/bin/package
|
||||||
|
# https://wiki.archlinux.org/index.php/Perl_Policy
|
||||||
|
# https://www.debian.org/doc/packaging-manuals/perl-policy/index.html
|
||||||
local required_apps='
|
local required_apps='
|
||||||
df:coreutils~coreutils~coreutils~:partition_data
|
df:coreutils~coreutils~coreutils~:partition_data
|
||||||
gawk:gawk~gawk~gawk~:core_tool
|
gawk:gawk~gawk~gawk~:core_tool
|
||||||
grep:grep~grep~grep~:string_search
|
grep:grep~grep~grep~:string_search
|
||||||
|
perl:perl~perl~perl~:debugger_uploader;_debugger_/sys_traverse
|
||||||
lspci:pciutils~pciutils~pciutils~:hardware_data
|
lspci:pciutils~pciutils~pciutils~:hardware_data
|
||||||
ps:procps~procps~procps~:process_data
|
ps:procps~procps~procps~:process_data
|
||||||
readlink:coreutils~coreutils~coreutils~:
|
readlink:coreutils~coreutils~coreutils~:
|
||||||
|
@ -2496,7 +2583,7 @@ check_recommends_items()
|
||||||
xrandr:x11-xserver-utils~xrandr~x11-server-utils~:-G_single_screen_resolution
|
xrandr:x11-xserver-utils~xrandr~x11-server-utils~:-G_single_screen_resolution
|
||||||
'
|
'
|
||||||
local recommended_apps='
|
local recommended_apps='
|
||||||
dig:dnsutils~dnsutils~bind-utils:-i_first_wlan_ip_default_test
|
dig:dnsutils~dnsutils~bind-utils:-i_wlan_IP_(Default)
|
||||||
dmidecode:dmidecode~dmidecode~dmidecode~:-M_if_no_sys_machine_data;_-m_memory
|
dmidecode:dmidecode~dmidecode~dmidecode~:-M_if_no_sys_machine_data;_-m_memory
|
||||||
file:file~file~file~:-o_unmounted_file_system
|
file:file~file~file~:-o_unmounted_file_system
|
||||||
hciconfig:bluez~bluez-utils~bluez-utils~:-n_-i_bluetooth_data-dev_only-not_used
|
hciconfig:bluez~bluez-utils~bluez-utils~:-n_-i_bluetooth_data-dev_only-not_used
|
||||||
|
@ -2514,9 +2601,10 @@ check_recommends_items()
|
||||||
'
|
'
|
||||||
|
|
||||||
local downloaders="
|
local downloaders="
|
||||||
wget:wget~wget~wget~:-i_wan_ip;-w/-W;-U/-!_[11-15]_(if_supported)
|
curl:curl~curl~curl~:-i_wan_ip;-w/-W;-U/-!_[11-15]_[Default|OR]
|
||||||
curl:curl~curl~curl~:-i_wan_ip;-w/-W;-U/-!_[11-15]_(if_supported)
|
wget:wget~wget~wget~:-i_wan_ip;-w/-W;-U/-!_[11-15]_[OR]
|
||||||
$downloaders_bsd
|
$downloaders_bsd
|
||||||
|
perl:perl~perl~perl~:-i_wan_ip;-w/-W;-U/-!_[11-15]_[Module_HTTP::Tiny]
|
||||||
"
|
"
|
||||||
local recommended_dirs='
|
local recommended_dirs='
|
||||||
/sys/class/dmi/id:-M_system,_motherboard,_bios
|
/sys/class/dmi/id:-M_system,_motherboard,_bios
|
||||||
|
@ -2539,7 +2627,6 @@ check_recommends_items()
|
||||||
$FILE_SCSI:-D_Advanced_hard_disk_data_[used_rarely]
|
$FILE_SCSI:-D_Advanced_hard_disk_data_[used_rarely]
|
||||||
$FILE_XORG_LOG:-G_graphics_driver_load_status
|
$FILE_XORG_LOG:-G_graphics_driver_load_status
|
||||||
"
|
"
|
||||||
|
|
||||||
if [[ -n $COLS_INNER ]];then
|
if [[ -n $COLS_INNER ]];then
|
||||||
if [[ $COLS_INNER -ge 90 ]];then
|
if [[ $COLS_INNER -ge 90 ]];then
|
||||||
width=${#LINE1} # match width of $LINE1
|
width=${#LINE1} # match width of $LINE1
|
||||||
|
@ -2547,7 +2634,6 @@ check_recommends_items()
|
||||||
width=$(( $COLS_INNER - 11 ))
|
width=$(( $COLS_INNER - 11 ))
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
case $1 in
|
case $1 in
|
||||||
downloaders)
|
downloaders)
|
||||||
item_list=$downloaders
|
item_list=$downloaders
|
||||||
|
@ -2620,8 +2706,8 @@ check_recommends_items()
|
||||||
application=$( cut -d ':' -f 1 <<< $item )
|
application=$( cut -d ':' -f 1 <<< $item )
|
||||||
package=$( cut -d ':' -f 2 <<< $item )
|
package=$( cut -d ':' -f 2 <<< $item )
|
||||||
location=$( type -p $application )
|
location=$( type -p $application )
|
||||||
if [[ $( awk -F ":" '{print NF-1}' <<< $item ) -eq 2 ]];then
|
if [[ $( awk -F ":" '{print NF-1}' <<< $item ) -ge 2 ]];then
|
||||||
feature=$( cut -d ':' -f 3 <<< $item )
|
feature=$( cut -d ':' -f 3-6 <<< $item )
|
||||||
else
|
else
|
||||||
feature=''
|
feature=''
|
||||||
fi
|
fi
|
||||||
|
@ -3156,6 +3242,24 @@ get_parameters()
|
||||||
B_SHOW_DISPLAY_DATA='true'
|
B_SHOW_DISPLAY_DATA='true'
|
||||||
B_RUNNING_IN_DISPLAY='true'
|
B_RUNNING_IN_DISPLAY='true'
|
||||||
;;
|
;;
|
||||||
|
41)
|
||||||
|
B_CURL='false'
|
||||||
|
set_downloader
|
||||||
|
;;
|
||||||
|
42)
|
||||||
|
B_FETCH='false'
|
||||||
|
set_downloader
|
||||||
|
;;
|
||||||
|
43)
|
||||||
|
B_WGET='false'
|
||||||
|
set_downloader
|
||||||
|
;;
|
||||||
|
44)
|
||||||
|
B_CURL='false'
|
||||||
|
B_FETCH='false'
|
||||||
|
B_WGET='false'
|
||||||
|
set_downloader
|
||||||
|
;;
|
||||||
ftp*)
|
ftp*)
|
||||||
ALTERNATE_FTP="$OPTARG"
|
ALTERNATE_FTP="$OPTARG"
|
||||||
;;
|
;;
|
||||||
|
@ -3347,6 +3451,10 @@ show_options()
|
||||||
print_lines_basic "1" "-! 33" "Forces use of dmidecode data instead of /sys where relevant (-M)."
|
print_lines_basic "1" "-! 33" "Forces use of dmidecode data instead of /sys where relevant (-M)."
|
||||||
print_lines_basic "1" "-! 34" "Skips SSL certificate checks for all downloader activies (wget/fetch/curl only). Must go before other options."
|
print_lines_basic "1" "-! 34" "Skips SSL certificate checks for all downloader activies (wget/fetch/curl only). Must go before other options."
|
||||||
print_lines_basic "1" "-! 40" "Will try to get display data out of X. Default gets it from display :0. If you use this format: -! 40:1 it would get it from display 1 instead, or any display you specify as long as there is no space between -! 40 and the :[display-number]."
|
print_lines_basic "1" "-! 40" "Will try to get display data out of X. Default gets it from display :0. If you use this format: -! 40:1 it would get it from display 1 instead, or any display you specify as long as there is no space between -! 40 and the :[display-number]."
|
||||||
|
print_lines_basic "1" "-! 41" "Bypass curl as a downloader option."
|
||||||
|
print_lines_basic "1" "-! 42" "Bypass fetch as a downloader option."
|
||||||
|
print_lines_basic "1" "-! 43" "Bypass wget as a downloader option."
|
||||||
|
print_lines_basic "1" "-! 44" "Bypass curl, fetch, and wget as a downloader options. Forces Perl if HTTP::Tiny present."
|
||||||
|
|
||||||
if [[ $1 == 'full' ]];then
|
if [[ $1 == 'full' ]];then
|
||||||
print_screen_output " "
|
print_screen_output " "
|
||||||
|
@ -8662,6 +8770,12 @@ get_networking_wan_ip_data()
|
||||||
ftp)
|
ftp)
|
||||||
ip_data="$( ftp $NO_SSL_OPT -o - $WAN_IP_URL 2>/dev/null )" || downloader_error=$?
|
ip_data="$( ftp $NO_SSL_OPT -o - $WAN_IP_URL 2>/dev/null )" || downloader_error=$?
|
||||||
;;
|
;;
|
||||||
|
perl)
|
||||||
|
if [[ -n $( grep 'smxi.org' <<< $WAN_IP_URL ) ]];then
|
||||||
|
ua="s-tools/inxi-ip"
|
||||||
|
fi
|
||||||
|
ip_data="$( download_file 'ua-stdout' $WAN_IP_URL $ua )" || downloader_man_error=$?
|
||||||
|
;;
|
||||||
wget)
|
wget)
|
||||||
if [[ -n $( grep 'smxi.org' <<< $WAN_IP_URL ) ]];then
|
if [[ -n $( grep 'smxi.org' <<< $WAN_IP_URL ) ]];then
|
||||||
ua="-U s-tools/inxi-ip"
|
ua="-U s-tools/inxi-ip"
|
||||||
|
@ -12035,6 +12149,9 @@ get_weather_data()
|
||||||
ftp)
|
ftp)
|
||||||
location_data="$( ftp $NO_SSL_OPT -o - $location_site 2>/dev/null )" || downloader_error=$?
|
location_data="$( ftp $NO_SSL_OPT -o - $location_site 2>/dev/null )" || downloader_error=$?
|
||||||
;;
|
;;
|
||||||
|
perl)
|
||||||
|
location_data="$( download_file 'stdout' $location_site )" || downloader_error=$?
|
||||||
|
;;
|
||||||
wget)
|
wget)
|
||||||
location_data="$( wget $NO_SSL_OPT -t 1 -T $DL_TIMEOUT -q -O - $location_site )" || downloader_error=$?
|
location_data="$( wget $NO_SSL_OPT -t 1 -T $DL_TIMEOUT -q -O - $location_site )" || downloader_error=$?
|
||||||
;;
|
;;
|
||||||
|
@ -12172,6 +12289,9 @@ get_weather_data()
|
||||||
ftp)
|
ftp)
|
||||||
weather_data="$( ftp $NO_SSL_OPT -o - $weather_feed"$location" 2>/dev/null )" || downloader_error=$?
|
weather_data="$( ftp $NO_SSL_OPT -o - $weather_feed"$location" 2>/dev/null )" || downloader_error=$?
|
||||||
;;
|
;;
|
||||||
|
perl)
|
||||||
|
weather_data="$( download_file 'stdout' "$weather_feed$location" )" || downloader_error=$?
|
||||||
|
;;
|
||||||
wget)
|
wget)
|
||||||
weather_data="$( wget $NO_SSL_OPT -t 1 -T $DL_TIMEOUT -q -O - $weather_feed"$location" )" || downloader_error=$?
|
weather_data="$( wget $NO_SSL_OPT -t 1 -T $DL_TIMEOUT -q -O - $weather_feed"$location" )" || downloader_error=$?
|
||||||
;;
|
;;
|
||||||
|
|
|
@ -1,3 +1,58 @@
|
||||||
|
=====================================================================================
|
||||||
|
Version: 2.3.46
|
||||||
|
Patch Version: 00
|
||||||
|
Script Date: 2017-11-26
|
||||||
|
-----------------------------------
|
||||||
|
Changes:
|
||||||
|
-----------------------------------
|
||||||
|
|
||||||
|
New version, new tarball. Added an optional downloader: Perl HTTP::Tiny
|
||||||
|
|
||||||
|
Note that this is the last choice because it's slow, the order has been revised:
|
||||||
|
|
||||||
|
1. curl
|
||||||
|
2. wget
|
||||||
|
3. fetch
|
||||||
|
4. Perl 5 HTTP::Tiny
|
||||||
|
5. OpenBSD ftp
|
||||||
|
|
||||||
|
wget has been downgraded due to the recent 1.19-2 bug with wget -O that did
|
||||||
|
not get resolved quickly, and which should never have been released since
|
||||||
|
that's a basic wget action, which means they aren't testing gnu wget the way
|
||||||
|
they should be.
|
||||||
|
|
||||||
|
All inxi downloaders can now use this option. However, in my tests it's signicantly
|
||||||
|
slower to use HTTP::Tiny than curl or wget, so inxi will test for the downloaders
|
||||||
|
in that order. While -i uses dig as it's primary IP tool, if dig is not installed,
|
||||||
|
the IP will follow the same downloader priority. -U and -w/-W use downloaders.
|
||||||
|
|
||||||
|
Because HTTP::Tiny is optional, and is merely used if wget/curl/fetch are not
|
||||||
|
installed, I would not consider Perl to be a real dependency yet, just an option, so
|
||||||
|
I guess for packager maintainers, Perl should be added as a recommends, or a
|
||||||
|
dependency if you want to fully support the debugger options (Core Modules).
|
||||||
|
|
||||||
|
While I'm still not sure which Perl modules I'm going to be using, I'm sticking
|
||||||
|
for now to Core Modules, the standard, with some experimental exceptions that
|
||||||
|
would only be used if the user had them present.
|
||||||
|
|
||||||
|
Long term the goal is to get rid of as many dependencies as possible, replacing
|
||||||
|
them were possible with Perl tools, but this is going to take forever, if it
|
||||||
|
ever happens, so don't hold your breath.
|
||||||
|
|
||||||
|
In the future, I expect more and more components that were gawk to be rewritten
|
||||||
|
to Perl (Core Modules), slowly, however, very slowly.
|
||||||
|
|
||||||
|
Updated --recommends to indicate the downloader options more clearly as well.
|
||||||
|
|
||||||
|
Added new options for bypassing curl (-! 41), fetch (-! 42) wget (-! 43), or
|
||||||
|
curl, fetch, and wget (-! 44) to disable all of them. This is in case one of
|
||||||
|
those is broken or you want to test Perl downloader, mostly.
|
||||||
|
|
||||||
|
Also cleaned up debugger output and made debugger portable to other scripts.
|
||||||
|
|
||||||
|
-----------------------------------
|
||||||
|
-- Harald Hope - Sun, 26 Nov 2017 15:14:34 -0800
|
||||||
|
|
||||||
=====================================================================================
|
=====================================================================================
|
||||||
Version: 2.3.45
|
Version: 2.3.45
|
||||||
Patch Version: 00
|
Patch Version: 00
|
||||||
|
|
Loading…
Reference in a new issue