diff options
author | 2014-04-03 13:42:13 -0400 | |
---|---|---|
committer | 2014-04-03 13:42:13 -0400 | |
commit | fe8ed1091f620062af5c9804b0cd51b691e3e1e0 (patch) | |
tree | f986a6faec7d3ad0bb3fc4c7e24bce3d99f7d978 | |
parent | d129954ed952d6d01ae1181ce60729f11a447c81 (diff) | |
download | inxi-fe8ed1091f620062af5c9804b0cd51b691e3e1e0.tar.bz2 inxi-fe8ed1091f620062af5c9804b0cd51b691e3e1e0.tar.xz inxi-fe8ed1091f620062af5c9804b0cd51b691e3e1e0.tar.zst |
Imported Upstream version 2.1.16upstream/2.1.16
-rwxr-xr-x | inxi | 193 | ||||
-rwxr-xr-x | inxi.changelog | 71 |
2 files changed, 216 insertions, 48 deletions
@@ -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: [1;34m 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 |