aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@ubuntu.com>2014-04-03 13:42:14 -0400
committerLibravatarUnit 193 <unit193@ubuntu.com>2014-04-03 13:42:14 -0400
commitf79223081d911344da250184975993a8f0c04f27 (patch)
tree83605947397b37cbc94730a04d574b8ad8cc8589
parent4e8c3ecca285e560c368c02a5ef21b8313985024 (diff)
parentfe8ed1091f620062af5c9804b0cd51b691e3e1e0 (diff)
downloadinxi-f79223081d911344da250184975993a8f0c04f27.tar.bz2
inxi-f79223081d911344da250184975993a8f0c04f27.tar.xz
inxi-f79223081d911344da250184975993a8f0c04f27.tar.zst
Merge tag 'upstream/2.1.16'
Upstream version 2.1.16
-rwxr-xr-xinxi193
-rwxr-xr-xinxi.changelog71
2 files changed, 216 insertions, 48 deletions
diff --git a/inxi b/inxi
index f74af49..77e9f0a 100755
--- a/inxi
+++ b/inxi
@@ -1,8 +1,8 @@
#!/usr/bin/env bash
########################################################################
#### Script Name: inxi
-#### Version: 2.1.13
-#### Date: 2014-03-30
+#### Version: 2.1.16
+#### Date: 2014-04-02
#### Patch Number: 00
########################################################################
#### SPECIAL THANKS
@@ -521,6 +521,7 @@ C2=''
CN=''
## Always leave these blank, these are only going to be set in inxi.conf files, that makes testing
## for user changes easier after sourcing the files
+ESC='\x1b'
GLOBAL_COLOR_SCHEME=''
IRC_COLOR_SCHEME=''
IRC_CONS_COLOR_SCHEME=''
@@ -593,7 +594,7 @@ BLUE,WHITE,NORMAL
## DISTRO DATA/ID ##
# In cases of derived distros where the version file of the base distro can also be found under /etc,
# the derived distro's version file should go first. (Such as with Sabayon / Gentoo)
-DISTROS_DERIVED="antix-version aptosid-version kanotix-version knoppix-version mandrake-release pardus-release porteus-version sabayon-release siduction-version sidux-version solusos-release turbolinux-release zenwalk-version"
+DISTROS_DERIVED="antix-version aptosid-version kanotix-version knoppix-version mandrake-release pardus-release porteus-version sabayon-release siduction-version sidux-version slitaz-release solusos-release turbolinux-release zenwalk-version"
# debian_version excluded from DISTROS_PRIMARY so Debian can fall through to /etc/issue detection. Same goes for Ubuntu.
DISTROS_EXCLUDE_LIST="debian_version ubuntu_version"
DISTROS_PRIMARY="arch-release gentoo-release redhat-release slackware-version SuSE-release"
@@ -825,6 +826,7 @@ initialize_data()
BSD_TYPE='bsd' # all other bsds
SED_I="-i ''"
SED_RX='-E'
+ ESC=$(echo | tr '\n' '\033')
fi
fi
# now set the script BOOLEANS for files required to run features
@@ -1599,7 +1601,15 @@ debug_data_collector()
systemctl list-units --type=target &> $debug_data_dir/systemctl-list-units-target.txt
initctl list &> $debug_data_dir/initctl-list.txt
sensors &> $debug_data_dir/sensors.txt
- strings --version &> $debug_data_dir/strings.txt
+ if type -p strings &>/dev/null;then
+ touch $debug_data_dir/strings-present
+ else
+ touch $debug_data_dir/strings-absent
+ fi
+ # leaving this commented out to remind that some systems do not
+ # 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.
+ # strings --version &> $debug_data_dir/strings.txt
if type -p nvidia-smi &>/dev/null;then
nvidia-smi -q &> $debug_data_dir/nvidia-smi-q.txt
nvidia-smi -q -x &> $debug_data_dir/nvidia-smi-xq.txt
@@ -8900,11 +8910,13 @@ get_weather_data()
# args: $1 - string to strip color code characters out of
# returns count of string length minus colors
+# note; this cleanup may not be working on bsd sed
calculate_line_length()
{
local string=$1
# ansi:  irc: \x0312
- string=$( sed -e "s/\x1b\[[0-9]\{1,2\}\(;[0-9]\{1,2\}\)\{0,2\}m//g" -e "s/\\\x0[0-9]\{1,3\}//g" <<< $string )
+ # note: using special trick for bsd sed, tr - NOTE irc sed must use " double quote
+ string=$( sed -e 's/'$ESC'\[[0-9]\{1,2\}\(;[0-9]\{1,2\}\)\{0,2\}m//g' -e "s/\\\x0[0-9]\{1,3\}//g" <<< $string )
count=${#string}
echo $count
}
@@ -9298,15 +9310,15 @@ print_audio_data()
# print the line
else
# keep the driver on the same line no matter what, looks weird alone on its own line
- if [[ $B_EXTRA_DATA != 'true' ]];then
- print_data=$( create_print_line "$line_starter" "$card_string$audio_data${CN}" )
- print_screen_output "$print_data"
- else
+ if [[ $( calculate_line_length "$card_string$audio_data" ) -gt $COLS_INNER ]];then
print_data=$( create_print_line "$line_starter" "$card_string${CN}" )
print_screen_output "$print_data"
line_starter=' '
print_data=$( create_print_line "$line_starter" "$audio_data${CN}" )
print_screen_output "$print_data"
+ else
+ print_data=$( create_print_line "$line_starter" "$card_string$audio_data${CN}" )
+ print_screen_output "$print_data"
fi
fi
line_starter=' '
@@ -9314,7 +9326,10 @@ print_audio_data()
done
fi
if [[ -n $alsa_data ]];then
- alsa_data=$( sed 's/ALSA/Advanced Linux Sound Architecture/' <<< $alsa_data )
+ if [[ $( calculate_line_length "${alsa_data/ALSA/Advanced Linux Sound Architecture}" ) -lt $COLS_INNER ]];then
+ # alsa_data=$( sed 's/ALSA/Advanced Linux Sound Architecture/' <<< $alsa_data )
+ alsa_data=${alsa_data/ALSA/Advanced Linux Sound Architecture}
+ fi
alsa_data=$( create_print_line "$line_starter" "$alsa_data${CN}" )
print_screen_output "$alsa_data"
fi
@@ -9720,7 +9735,6 @@ print_graphics_data()
part_1_data="$display_server_string$driver_string"
part_2_data="${C1}$res_tty$SEP3${C2} $screen_resolution $root_x_string"
-
if [[ -n $( grep -vE '^[[:space:]]*$' <<< $part_1_data$part_2_data ) && \
$( calculate_line_length "$part_1_data $part_2_data" ) -gt $COLS_INNER ]];then
graphics_data=$( create_print_line "$line_starter" "$part_1_data" )
@@ -10272,7 +10286,7 @@ print_networking_data()
local i='' card_id='' network_data='' a_network_working='' port_data='' driver_data=''
local card_string='' port_plural='' module_version='' pci_bus_id='' bus_usb_text=''
local bus_usb_id='' line_starter='Network:' card_string='' card_data='' chip_id=''
- local driver=''
+ local driver='' part_2_data=''
# set A_NETWORK_DATA
if [[ $BSD_TYPE == 'bsd' ]];then
if [[ $B_PCICONF_SET == 'false' ]];then
@@ -10302,6 +10316,7 @@ print_networking_data()
port_data=''
port_plural=''
chip_id=''
+ part_2_data=''
if [[ ${#A_NETWORK_DATA[@]} -gt 1 ]];then
card_id="-$(( $i + 1 ))"
@@ -10348,16 +10363,30 @@ print_networking_data()
fi
fi
card_string="${C1}Card$card_id$SEP3${C2} ${a_network_working[0]} "
- card_data="$driver_data$port_data$pci_bus_id$chip_id"
- if [[ $( calculate_line_length "$card_string$card_data" ) -gt $COLS_INNER ]];then
- network_data=$( create_print_line "$line_starter" "$card_string${CN}" )
+ card_data="$driver_data$port_data"
+ part_2_data="$pci_bus_id$chip_id"
+ if [[ $( calculate_line_length "$card_string$card_data$part_2_data" ) -gt $COLS_INNER ]];then
+ network_data=$( create_print_line "$line_starter" "$card_string" )
line_starter=' '
card_string=''
print_screen_output "$network_data"
fi
- network_data=$( create_print_line "$line_starter" "$card_string$card_data${CN}" )
- line_starter=' '
- print_screen_output "$network_data"
+ if [[ $( calculate_line_length "$card_string$card_data$part_2_data" ) -gt $COLS_INNER ]];then
+ network_data=$( create_print_line "$line_starter" "$card_string$card_data" )
+ print_screen_output "$network_data"
+ line_starter=' '
+ card_data=''
+ card_string=''
+
+ fi
+ if [[ -n $card_string$card_data$part_2_data ]];then
+ network_data=$( create_print_line "$line_starter" "$card_string$card_data$part_2_data" )
+ print_screen_output "$network_data"
+ line_starter=' '
+ card_data=''
+ card_string=''
+ part_2_data=''
+ fi
if [[ $B_SHOW_ADVANCED_NETWORK == 'true' ]];then
print_network_advanced_data
fi
@@ -10377,7 +10406,7 @@ 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=''
+ local b_is_wifi='false' speed_string='' duplex_string='' part_2_data=''
# 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|802\.11|centrino)' <<< ${a_network_working[0]} ) ]];then
@@ -10414,9 +10443,18 @@ print_network_advanced_data()
mac_id=${a_network_working[9]}
fi
fi
- network_data="${C1}IF$SEP3${C2} $if_id ${C1}state$SEP3${C2} $oper_state $speed_string$duplex_string${C1}mac$SEP3${C2} $mac_id"
- network_data=$( create_print_line " " "$network_data${CN}" )
- print_screen_output "$network_data"
+ network_data="${C1}IF$SEP3${C2} $if_id ${C1}state$SEP3${C2} $oper_state $speed_string$duplex_string"
+ part_2_data="${C1}mac$SEP3${C2} $mac_id"
+ if [[ $( calculate_line_length "$network_data$part_2_data" ) -gt $COLS_INNER ]];then
+ network_data=$( create_print_line " " "$network_data${CN}" )
+ print_screen_output "$network_data"
+ network_data=''
+ fi
+ if [[ -n $network_data$part_2_data ]];then
+ network_data=$( create_print_line " " "$network_data$part_2_data${CN}" )
+ print_screen_output "$network_data"
+ network_data=''
+ fi
eval $LOGFE
}
@@ -10425,10 +10463,9 @@ print_networking_ip_data()
{
eval $LOGFS
local ip=$( get_networking_wan_ip_data )
- local wan_ip_data='' a_interfaces_working='' interfaces='' i=''
+ local wan_ip_data='' a_interfaces_working='' interfaces='' i=0
local if_id='' if_ip='' if_ipv6='' if_ipv6_string='' full_string='' if_string=''
- local if_id_string='' if_ip_string=''
- local line_max=$(( $COLS_INNER - 40 ))
+ local if_id_string='' if_ip_string='' if_string_holding=''
# set A_INTERFACES_DATA
get_networking_local_ip_data
@@ -10475,19 +10512,39 @@ print_networking_ip_data()
if [[ -n ${a_interfaces_working[0]} ]];then
if_id=${a_interfaces_working[0]}
fi
- if_string="$wan_ip_data$if_string${C1}IF$SEP3${C2} $if_id$if_ip_string$if_ipv6_string "
- wan_ip_data=''
- if [[ $( calculate_line_length "$if_string" ) -gt $line_max ]];then
- full_string=$( create_print_line " " "$if_string${CN}" )
- print_screen_output "$full_string"
- if_string=''
+ if_string="${C1}IF$SEP3${C2} $if_id$if_ip_string$if_ipv6_string "
+ # first line, print wan on its own line if too long
+ if [[ $i -eq 0 ]];then
+ if [[ $( calculate_line_length "$wan_ip_data$if_string" ) -gt $COLS_INNER ]];then
+ full_string=$( create_print_line " " "$wan_ip_data${CN}" )
+ print_screen_output "$full_string"
+ wan_ip_data=''
+ full_string=$( create_print_line " " "$if_string${CN}" )
+ print_screen_output "$full_string"
+ if_string=''
+ else
+ full_string=$( create_print_line " " "$wan_ip_data$if_string${CN}" )
+ print_screen_output "$full_string"
+ wan_ip_data=''
+ if_string=''
+ fi
+ else
+ if [[ $( calculate_line_length "$if_string_holding$if_string" ) -gt $COLS_INNER ]];then
+ if [[ -n $if_string_holding ]];then
+ full_string=$( create_print_line " " "$if_string_holding${CN}" )
+ print_screen_output "$full_string"
+ fi
+ if_string_holding="$if_string"
+ else
+ if_string_holding="$if_string_holding$if_string"
+ fi
fi
((i++))
done
# then print out anything not printed already
- if [[ -n $if_string ]];then
- full_string=$( create_print_line " " "$if_string${CN}" )
+ if [[ -n $if_string_holding ]];then
+ full_string=$( create_print_line " " "$if_string_holding${CN}" )
print_screen_output "$full_string"
fi
eval $LOGFE
@@ -10498,7 +10555,7 @@ print_optical_drive_data()
eval $LOGFS
local a_drives='' drive_data='' counter=''
local drive_id='' drive_links='' vendor='' speed='' multisession='' mcn='' audio=''
- local dvd='' state='' rw_support='' rev='' separator='' drive_string=''
+ local dvd='' state='' rw_support='' rev='' separator='' drive_string='' part_2_data=''
get_optical_drive_data
# 0 - true dev path, ie, sr0, hdc
# 1 - dev links to true path
@@ -10559,14 +10616,43 @@ print_optical_drive_data()
else
rev='N/A'
fi
- rev=" ${C1}rev$SEP3${C2} $rev"
+ rev="${C1}rev$SEP3${C2} $rev "
fi
- drive_string="$drive_id ${C1}model$SEP3${C2} $vendor$rev ${C1}dev-links$SEP3${C2} $drive_links"
+ drive_string="$drive_id ${C1}model$SEP3${C2} $vendor "
+ part_2_data="$rev${C1}dev-links$SEP3${C2} $drive_links"
fi
drive_data="${C1}Optical${counter}$SEP3${C2} $drive_string"
- drive_data=$( create_print_line "$Line_Starter" "$drive_data${CN}" )
- print_screen_output "$drive_data"
- Line_Starter=' '
+ if [[ $( calculate_line_length "$drive_data$part_2_data" ) -lt $COLS_INNER ]];then
+ drive_data=$( create_print_line "$Line_Starter" "$drive_data$part_2_data${CN}" )
+ print_screen_output "$drive_data"
+ Line_Starter=' '
+ drive_data=''
+ part_2_data=''
+ else
+ if [[ $( calculate_line_length "$drive_data" ) -gt $COLS_INNER ]];then
+ drive_data=$( create_print_line "$Line_Starter" "$drive_data${CN}" )
+ print_screen_output "$drive_data"
+ Line_Starter=' '
+ drive_data=''
+ fi
+ if [[ $( calculate_line_length "$drive_data$part_2_data" ) -lt $COLS_INNER ]];then
+ drive_data=$( create_print_line "$Line_Starter" "$drive_data$part_2_data${CN}" )
+ print_screen_output "$drive_data"
+ Line_Starter=' '
+ part_2_data=''
+ drive_data=''
+ else
+ drive_data=$( create_print_line "$Line_Starter" "$drive_data${CN}" )
+ print_screen_output "$drive_data"
+ drive_data=''
+ Line_Starter=' '
+ drive_data=$( create_print_line "$Line_Starter" "$part_2_data${CN}" )
+ print_screen_output "$drive_data"
+ Line_Starter=' '
+ part_2_data=''
+ fi
+ fi
+
# 5 - speed
# 6 - multisession support
# 7 - MCN support
@@ -10590,7 +10676,7 @@ print_optical_drive_data()
else
audio='no'
fi
- audio=" ${C1}audio$SEP3${C2} $audio"
+ audio="${C1}audio$SEP3${C2} $audio "
if [[ -z ${a_drives[6]} ]];then
multisession='N/A'
elif [[ ${a_drives[6]} == 1 ]];then
@@ -10598,7 +10684,7 @@ print_optical_drive_data()
else
multisession='no'
fi
- multisession=" ${C1}multisession$SEP3${C2} $multisession"
+ multisession="${C1}multisession$SEP3${C2} $multisession "
if [[ -z ${a_drives[11]} ]];then
dvd='N/A'
elif [[ ${a_drives[11]} == 1 ]];then
@@ -10612,7 +10698,7 @@ print_optical_drive_data()
else
state="${a_drives[14]}"
fi
- state=" ${C1}state$SEP3${C2} $state"
+ state="${C1}state$SEP3${C2} $state "
fi
if [[ -n ${a_drives[9]} && ${a_drives[9]} == 1 ]];then
rw_support='cd-r'
@@ -10633,10 +10719,19 @@ print_optical_drive_data()
if [[ -z $rw_support ]];then
rw_support='none'
fi
-
- drive_data="${C1}Features: speed$SEP3${C2} $speed$multisession$audio ${C1}dvd$SEP3${C2} $dvd ${C1}rw$SEP3${C2} $rw_support$state"
- drive_data=$( create_print_line "$Line_Starter" "$drive_data${CN}" )
- print_screen_output "$drive_data"
+ drive_data="${C1}Features: speed$SEP3${C2} $speed $multisession"
+ part_2_data="$audio${C1}dvd$SEP3${C2} $dvd ${C1}rw$SEP3${C2} $rw_support $state"
+ if [[ $( calculate_line_length "$drive_data$part_2_data" ) -lt $COLS_INNER ]];then
+ drive_data=$( create_print_line "$Line_Starter" "$drive_data$part_2_data${CN}" )
+ print_screen_output "$drive_data"
+ Line_Starter=' '
+ else
+ drive_data=$( create_print_line "$Line_Starter" "$drive_data" )
+ print_screen_output "$drive_data"
+ drive_data=$( create_print_line "$Line_Starter" "$part_2_data${CN}" )
+ print_screen_output "$drive_data"
+ Line_Starter=' '
+ fi
fi
done
else
@@ -10751,8 +10846,10 @@ print_partition_data()
else
line_starter=' '
fi
- partition_data=$( create_print_line "$line_starter" "${a_partition_data[$i]}${CN}" )
- print_screen_output "$partition_data"
+ if [[ -n ${a_partition_data[$i]} ]];then
+ partition_data=$( create_print_line "$line_starter" "${a_partition_data[$i]}${CN}" )
+ print_screen_output "$partition_data"
+ fi
done
eval $LOGFE
diff --git a/inxi.changelog b/inxi.changelog
index 95cdb62..c50b99f 100755
--- a/inxi.changelog
+++ b/inxi.changelog
@@ -1,4 +1,75 @@
=====================================================================================
+Version: 2.1.16
+Patch Version: 00
+Script Date: 2014-04-02
+-----------------------------------
+Changes:
+-----------------------------------
+New version, tarball. This fix only impacts bsd sed, but it fixes the line length failure
+issue because bsd sed doesn't work with \x1b, but it does when you do:
+ESC=$(echo | tr '\n' '\033' )
+I found this trick on:
+http://unix.stackexchange.com/questions/42321/how-can-i-instruct-bsd-sed-to-interpret-escape-sequences-like-n-and-t
+
+No other changes. Non bsd users, you can ignore this.
+
+-----------------------------------
+-- Harald Hope - Wed, 02 Apr 2014 21:24:52 -0700
+
+=====================================================================================
+Version: 2.1.15
+Patch Version: 00
+Script Date: 2014-04-01
+-----------------------------------
+Changes:
+-----------------------------------
+new version/tarball. This corrects some subtle issues with line wraps:
+
+Audio -A - now wrap is fully dynamic down to 80 characters, and also the expansion of ALSA
+to Advanced Linux Sound System only happens if that fits in the display width.
+
+-N/-n/-i - Most networking/ip address stuff wraps now.
+
+-d - optical drive data wraps better now too.
+
+This more or less completes the line wrap redo.
+
+-----------------------------------
+-- Harald Hope - Tue, 01 Apr 2014 12:39:44 -0700
+
+=====================================================================================
+Version: 2.1.14
+Patch Version: 00
+Script Date: 2014-03-31
+-----------------------------------
+Changes:
+-----------------------------------
+Forgot, added slitaz-release to distros derived. that's as slackware derived one.
+
+-----------------------------------
+-- Harald Hope - Mon, 31 Mar 2014 18:10:02 -0700
+
+=====================================================================================
+Version: 2.1.14
+Patch Version: 00
+Script Date: 2014-03-31
+-----------------------------------
+Changes:
+-----------------------------------
+new version/tarball. Tiny fix in debugger, it turns out that in some systems, the command:
+strings --version used in the debugger results in a hang, which you can duplicate with:
+strings
+alone, without any argument or info, that will hang too, so I assume if the system doesn't
+have the --version parameter, strings ignores that, and basically just does what it would do
+with no option, hang.
+
+Thanks for user ypharis persistence in tracking down this issue. So far only appeared on slackware
+based distros, but since the debugger should 'just work', removing the version test.
+
+-----------------------------------
+-- Harald Hope - Mon, 31 Mar 2014 17:49:48 -0700
+
+=====================================================================================
Version: 2.1.13
Patch Version: 00
Script Date: 2014-03-30