mirror of
https://github.com/smxi/inxi.git
synced 2024-11-16 16:21:39 +00:00
New Version, new man. This continues the dyanamic line sizing, I'm doing these one at a
time to make it easier to test stuff one by one. Full refactoring/reordering of top global variables, moved user/maintainer set variables to top, and clearly identify all globals. Changed LINE_MAX to COL_MAX but all user configuration files will stay working since inxi now will check for that and translate them to the new variable names. New lines fixed, -C cpu and -f cpu plus full flags. Flags output is now fully dynamic to display screen in terminal/console. Moved cpu short flags to -x because it's not that important in general and just clutters things up in my opinion. Print flags/bogomips on separate line if line greater than display width. The rest of the lines will get a similar treatment, but it takes a bit of trial and error for each line to get it working right. Note that IRC line lengths are NOT dyanamic unless I can find a way to determine the column width of irc clients, but that won't be accurate since fonts vary in widths for each character. CPU was the worst offender in my opinion in terms of regular output wrapping to new line messily, next will be the things with ports/chip id/card id. Tightened up a bit more the dyanamic help / version output handler.
This commit is contained in:
parent
77fe7b1855
commit
e8e3f9be84
396
inxi
396
inxi
|
@ -1,8 +1,8 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
########################################################################
|
########################################################################
|
||||||
#### Script Name: inxi
|
#### Script Name: inxi
|
||||||
#### Version: 2.1.0
|
#### Version: 2.1.1
|
||||||
#### Date: 2014-03-13
|
#### Date: 2014-03-14
|
||||||
#### Patch Number: 00
|
#### Patch Number: 00
|
||||||
########################################################################
|
########################################################################
|
||||||
#### SPECIAL THANKS
|
#### SPECIAL THANKS
|
||||||
|
@ -193,37 +193,47 @@
|
||||||
|
|
||||||
## NOTE: we can use hwinfo if it's available in all systems, or most, to get
|
## NOTE: we can use hwinfo if it's available in all systems, or most, to get
|
||||||
## a lot more data and verbosity levels going
|
## a lot more data and verbosity levels going
|
||||||
# set to default LANG to avoid locales errors with , or .
|
|
||||||
LANG=C
|
### DISTRO MAINTAINER FLAGS ###
|
||||||
### Variable initializations: null values
|
# flag to allow distro maintainers to turn off update features. If false, turns off
|
||||||
BSD_TYPE=''
|
# -U and -! testing/advanced update options, as well as removing the -U help menu item
|
||||||
BSD_VERSION=
|
# NOTE: Usually you want to create these in /etc/inxi.conf to avoid having to update each time
|
||||||
CMDL_MAX=''
|
B_ALLOW_UPDATE='true'
|
||||||
COLOR_SCHEME=''
|
B_ALLOW_WEATHER='true'
|
||||||
|
|
||||||
|
### USER CONFIGS: SET IN inxi.conf file see wiki for directions ###
|
||||||
|
# http://code.google.com/p/inxi/wiki/script_configuration_files
|
||||||
# override in user config if desired, seems like less than .3 doesn't work as reliably
|
# override in user config if desired, seems like less than .3 doesn't work as reliably
|
||||||
CPU_SLEEP='0.3'
|
CPU_SLEEP='0.3'
|
||||||
DEV_DISK_ID=''
|
|
||||||
DEV_DISK_LABEL=''
|
|
||||||
DEV_DISK_MAPPER=''
|
|
||||||
DEV_DISK_UUID=''
|
|
||||||
DMIDECODE_DATA=''
|
|
||||||
FILTER_STRING='<filter>'
|
FILTER_STRING='<filter>'
|
||||||
IRC_CLIENT=''
|
|
||||||
IRC_CLIENT_VERSION=''
|
# for features like help/version will fit to terminal / console screen width. Console
|
||||||
LINE_MAX=''
|
# widths will be dynamically set in main() based on cols in term/console
|
||||||
# for features like help/version will fit to terminal / console screen width
|
COLS_MAX_CONSOLE='115'
|
||||||
LINE_MAX_BASIC='120'
|
COLS_MAX_IRC='105'
|
||||||
LINE_MAX_CONSOLE='115'
|
|
||||||
LINE_MAX_IRC='105'
|
|
||||||
PS_COUNT=5
|
PS_COUNT=5
|
||||||
PS_THROTTLED=''
|
|
||||||
REPO_DATA=''
|
|
||||||
SED_I='-i' # for gnu sed, will be set to -i '' for bsd sed
|
|
||||||
SED_RX='-r' # for gnu sed, will be set to -E for bsd sed for backward compatibility
|
|
||||||
# change to less, or more if you have very slow connection
|
# change to less, or more if you have very slow connection
|
||||||
WGET_TIMEOUT=8
|
WGET_TIMEOUT=8
|
||||||
|
### END USER CONFIGS ###
|
||||||
|
|
||||||
### primary data array holders ## usage: 'A_<var>'
|
### LOCALIZATION - DO NOT CHANGE! ###
|
||||||
|
# set to default LANG to avoid locales errors with , or .
|
||||||
|
LANG=C
|
||||||
|
# Make sure every program speaks English.
|
||||||
|
LC_ALL="C"
|
||||||
|
export LC_ALL
|
||||||
|
|
||||||
|
### ARRAYS ###
|
||||||
|
## Prep
|
||||||
|
# Clear nullglob, because it creates unpredictable situations with IFS=$'\n' ARR=($VAR) IFS="$ORIGINAL_IFS"
|
||||||
|
# type constructs. Stuff like [rev a1] is now seen as a glob expansion pattern, and fails, and
|
||||||
|
# therefore results in nothing.
|
||||||
|
shopt -u nullglob
|
||||||
|
## info on bash built in: $IFS - http://tldp.org/LDP/abs/html/internalvariables.html
|
||||||
|
# Backup the current Internal Field Separator
|
||||||
|
ORIGINAL_IFS="$IFS"
|
||||||
|
|
||||||
|
## Initialize
|
||||||
A_ALSA_DATA=''
|
A_ALSA_DATA=''
|
||||||
A_AUDIO_DATA=''
|
A_AUDIO_DATA=''
|
||||||
A_CMDL=''
|
A_CMDL=''
|
||||||
|
@ -250,12 +260,7 @@ A_UNMOUNTED_PARTITION_DATA=''
|
||||||
A_WEATHER_DATA=''
|
A_WEATHER_DATA=''
|
||||||
A_DISPLAY_SERVER_DATA=''
|
A_DISPLAY_SERVER_DATA=''
|
||||||
|
|
||||||
### Boolean true/false globals ## usage: 'B_<var>'
|
### BOOLEANS ###
|
||||||
## Distro maintainer flags ##
|
|
||||||
# flag to allow distro maintainers to turn off update features. If false, turns off
|
|
||||||
# -U and -! testing/advanced update options, as well as removing the -U help menu item
|
|
||||||
B_ALLOW_UPDATE='true'
|
|
||||||
B_ALLOW_WEATHER='true'
|
|
||||||
## standard boolean flags ##
|
## standard boolean flags ##
|
||||||
B_BSD_RAID='false'
|
B_BSD_RAID='false'
|
||||||
B_COLOR_SCHEME_SET='false'
|
B_COLOR_SCHEME_SET='false'
|
||||||
|
@ -292,10 +297,10 @@ B_RAID_SET='false'
|
||||||
B_ROOT='false'
|
B_ROOT='false'
|
||||||
B_RUN_COLOR_SELECTOR='false'
|
B_RUN_COLOR_SELECTOR='false'
|
||||||
B_RUNNING_IN_DISPLAY='false' # in x type display server
|
B_RUNNING_IN_DISPLAY='false' # in x type display server
|
||||||
# Running in a shell? Defaults to false, and is determined later.
|
|
||||||
B_RUNNING_IN_SHELL='false'
|
|
||||||
if tty >/dev/null;then
|
if tty >/dev/null;then
|
||||||
B_RUNNING_IN_SHELL='true'
|
B_RUNNING_IN_SHELL='true'
|
||||||
|
else
|
||||||
|
B_RUNNING_IN_SHELL='false'
|
||||||
fi
|
fi
|
||||||
# this sets the debug buffer
|
# this sets the debug buffer
|
||||||
B_SCRIPT_UP='false'
|
B_SCRIPT_UP='false'
|
||||||
|
@ -348,7 +353,7 @@ B_USE_LOGGING='false'
|
||||||
B_UUID_SET='false'
|
B_UUID_SET='false'
|
||||||
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 ]]
|
||||||
B_ASOUND_DEVICE_FILE='false'
|
B_ASOUND_DEVICE_FILE='false'
|
||||||
B_ASOUND_VERSION_FILE='false'
|
B_ASOUND_VERSION_FILE='false'
|
||||||
B_BASH_ARRAY='false'
|
B_BASH_ARRAY='false'
|
||||||
|
@ -364,64 +369,21 @@ B_PARTITIONS_FILE='false' #
|
||||||
B_PROC_DIR='false'
|
B_PROC_DIR='false'
|
||||||
B_SCSI_FILE='false'
|
B_SCSI_FILE='false'
|
||||||
|
|
||||||
### File's used when present
|
|
||||||
FILE_ASOUND_DEVICE='/proc/asound/cards'
|
|
||||||
FILE_ASOUND_MODULES='/proc/asound/modules' # not used but maybe for -A?
|
|
||||||
FILE_ASOUND_VERSION='/proc/asound/version'
|
|
||||||
FILE_CPUINFO='/proc/cpuinfo'
|
|
||||||
FILE_DMESG_BOOT='/var/run/dmesg.boot'
|
|
||||||
FILE_LSB_RELEASE='/etc/lsb-release'
|
|
||||||
FILE_MDSTAT='/proc/mdstat'
|
|
||||||
FILE_MEMINFO='/proc/meminfo'
|
|
||||||
FILE_MODULES='/proc/modules'
|
|
||||||
FILE_MOUNTS='/proc/mounts'
|
|
||||||
FILE_OS_RELEASE='/etc/os-release'
|
|
||||||
FILE_PARTITIONS='/proc/partitions'
|
|
||||||
FILE_SCSI='/proc/scsi/scsi'
|
|
||||||
FILE_XORG_LOG='/var/log/Xorg.0.log' # if not found, search and replace with actual location
|
|
||||||
|
|
||||||
## app tested for and present, to avoid repeat tests
|
## app tested for and present, to avoid repeat tests
|
||||||
B_FILE_TESTED='false'
|
B_FILE_TESTED='false'
|
||||||
B_HDDTEMP_TESTED='false'
|
B_HDDTEMP_TESTED='false'
|
||||||
B_MODINFO_TESTED='false'
|
B_MODINFO_TESTED='false'
|
||||||
B_SUDO_TESTED='false'
|
B_SUDO_TESTED='false'
|
||||||
FILE_PATH=''
|
|
||||||
HDDTEMP_PATH=''
|
|
||||||
MODINFO_PATH=''
|
|
||||||
SUDO_PATH=''
|
|
||||||
|
|
||||||
### Variable initializations: constants
|
### CONSTANTS/INITIALIZE - SOME MAY BE RESET LATER ###
|
||||||
DCOPOBJ="default"
|
DCOPOBJ="default"
|
||||||
DEBUG=0 # Set debug levels from 1-10 (8-10 trigger logging levels)
|
DEBUG=0 # Set debug levels from 1-10 (8-10 trigger logging levels)
|
||||||
# Debug Buffer Index, index into a debug buffer storing debug messages until inxi is 'all up'
|
# Debug Buffer Index, index into a debug buffer storing debug messages until inxi is 'all up'
|
||||||
DEBUG_BUFFER_INDEX=0
|
DEBUG_BUFFER_INDEX=0
|
||||||
## note: the debugger rerouting to /dev/null has been moved to the end of the get_parameters function
|
## note: the debugger rerouting to /dev/null has been moved to the end of the get_parameters function
|
||||||
## so -@[number] debug levels can be set if there is a failure, otherwise you can't even see the errors
|
## so -@[number] debug levels can be set if there is a failure, otherwise you can't even see the errors
|
||||||
|
SED_I='-i' # for gnu sed, will be set to -i '' for bsd sed
|
||||||
# Defaults to 2, make this 1 for normal, 0 for no colorcodes at all. Use following variables in config
|
SED_RX='-r' # for gnu sed, will be set to -E for bsd sed for backward compatibility
|
||||||
# files to change defaults for each type, or global
|
|
||||||
# Same as runtime parameter.
|
|
||||||
DEFAULT_COLOR_SCHEME=2
|
|
||||||
# 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
|
|
||||||
GLOBAL_COLOR_SCHEME=''
|
|
||||||
IRC_COLOR_SCHEME=''
|
|
||||||
IRC_CONS_COLOR_SCHEME=''
|
|
||||||
IRC_X_TERM_COLOR_SCHEME=''
|
|
||||||
CONSOLE_COLOR_SCHEME=''
|
|
||||||
VIRT_TERM_COLOR_SCHEME=''
|
|
||||||
|
|
||||||
# Default indentation level
|
|
||||||
INDENT=10
|
|
||||||
|
|
||||||
# logging eval variables, start and end function: Insert to LOGFS LOGFE when debug level >= 8
|
|
||||||
LOGFS_STRING='log_function_data fs $FUNCNAME "$( echo $@ )"'
|
|
||||||
LOGFE_STRING='log_function_data fe $FUNCNAME'
|
|
||||||
LOGFS=''
|
|
||||||
LOGFE=''
|
|
||||||
# uncomment for debugging from script start
|
|
||||||
# LOGFS=$LOGFS_STRING
|
|
||||||
# LOGFE=$LOGFE_STRING
|
|
||||||
|
|
||||||
# default to false, no konversation found, 1 is native konvi (qt3/KDE3) script mode, 2 is /cmd inxi start,
|
# default to false, no konversation found, 1 is native konvi (qt3/KDE3) script mode, 2 is /cmd inxi start,
|
||||||
## 3 is Konversation > 1.2 (qt4/KDE4)
|
## 3 is Konversation > 1.2 (qt4/KDE4)
|
||||||
|
@ -440,24 +402,38 @@ VERBOSITY_LEVEL=0
|
||||||
# Supported number of verbosity levels, including 0
|
# Supported number of verbosity levels, including 0
|
||||||
VERBOSITY_LEVELS=7
|
VERBOSITY_LEVELS=7
|
||||||
|
|
||||||
# Clear nullglob, because it creates unpredictable situations with IFS=$'\n' ARR=($VAR) IFS="$ORIGINAL_IFS"
|
### LOGGING ###
|
||||||
# type constructs. Stuff like [rev a1] is now seen as a glob expansion pattern, and fails, and
|
## logging eval variables, start and end function: Insert to LOGFS LOGFE when debug level >= 8
|
||||||
# therefore results in nothing.
|
LOGFS_STRING='log_function_data fs $FUNCNAME "$( echo $@ )"'
|
||||||
shopt -u nullglob
|
LOGFE_STRING='log_function_data fe $FUNCNAME'
|
||||||
## info on bash built in: $IFS - http://tldp.org/LDP/abs/html/internalvariables.html
|
LOGFS=''
|
||||||
# Backup the current Internal Field Separator
|
LOGFE=''
|
||||||
ORIGINAL_IFS="$IFS"
|
# uncomment for debugging from script start
|
||||||
|
# LOGFS=$LOGFS_STRING
|
||||||
|
# LOGFE=$LOGFE_STRING
|
||||||
|
|
||||||
# These two determine separators in single line output, to force irc clients not to break off sections
|
### FILE NAMES/PATHS/URLS - must be non root writable ###
|
||||||
SEP1='~'
|
# File's used when present
|
||||||
SEP2=' '
|
FILE_ASOUND_DEVICE='/proc/asound/cards'
|
||||||
# these will assign a separator to non irc states. Important! Using ':' can trigger stupid emoticon
|
FILE_ASOUND_MODULES='/proc/asound/modules' # not used but maybe for -A?
|
||||||
# behaviors in output on IRC, so do not use those.
|
FILE_ASOUND_VERSION='/proc/asound/version'
|
||||||
SEP3_IRC=''
|
FILE_CPUINFO='/proc/cpuinfo'
|
||||||
SEP3_CONSOLE=':'
|
FILE_DMESG_BOOT='/var/run/dmesg.boot'
|
||||||
SEP3='' # do not set, will be set dynamically
|
FILE_LSB_RELEASE='/etc/lsb-release'
|
||||||
|
FILE_MDSTAT='/proc/mdstat'
|
||||||
|
FILE_MEMINFO='/proc/meminfo'
|
||||||
|
FILE_MODULES='/proc/modules'
|
||||||
|
FILE_MOUNTS='/proc/mounts'
|
||||||
|
FILE_OS_RELEASE='/etc/os-release'
|
||||||
|
FILE_PARTITIONS='/proc/partitions'
|
||||||
|
FILE_SCSI='/proc/scsi/scsi'
|
||||||
|
FILE_XORG_LOG='/var/log/Xorg.0.log' # if not found, search and replace with actual location
|
||||||
|
|
||||||
|
FILE_PATH=''
|
||||||
|
HDDTEMP_PATH=''
|
||||||
|
MODINFO_PATH=''
|
||||||
|
SUDO_PATH=''
|
||||||
|
|
||||||
### Script names/paths - must be non root writable
|
|
||||||
SCRIPT_DATA_DIR="$HOME/.inxi"
|
SCRIPT_DATA_DIR="$HOME/.inxi"
|
||||||
ALTERNATE_FTP='' # for data uploads
|
ALTERNATE_FTP='' # for data uploads
|
||||||
ALTERNATE_WEATHER_LOCATION='' # weather alternate location
|
ALTERNATE_WEATHER_LOCATION='' # weather alternate location
|
||||||
|
@ -483,25 +459,76 @@ SCRIPT_DOWNLOAD_DEV='http://smxi.org/test/'
|
||||||
WAN_IP_URL='http://smxi.org/opt/ip.php'
|
WAN_IP_URL='http://smxi.org/opt/ip.php'
|
||||||
KONVI_CFG="konversation/scripts/$SCRIPT_NAME.conf" # relative path to $(kde-config --path data)
|
KONVI_CFG="konversation/scripts/$SCRIPT_NAME.conf" # relative path to $(kde-config --path data)
|
||||||
|
|
||||||
TERM_LINES=100
|
### INITIALIZE VARIABLES NULL ###
|
||||||
|
BSD_TYPE=''
|
||||||
|
BSD_VERSION=
|
||||||
|
CMDL_MAX=''
|
||||||
|
|
||||||
|
DEV_DISK_ID=''
|
||||||
|
DEV_DISK_LABEL=''
|
||||||
|
DEV_DISK_MAPPER=''
|
||||||
|
DEV_DISK_UUID=''
|
||||||
|
DMIDECODE_DATA=''
|
||||||
|
IRC_CLIENT=''
|
||||||
|
IRC_CLIENT_VERSION=''
|
||||||
|
PS_THROTTLED=''
|
||||||
|
REPO_DATA=''
|
||||||
|
|
||||||
|
### LAYOUT ###
|
||||||
|
# These two determine separators in single line output, to force irc clients not to break off sections
|
||||||
|
SEP1='~'
|
||||||
|
SEP2=' '
|
||||||
|
# these will assign a separator to non irc states. Important! Using ':' can trigger stupid emoticon
|
||||||
|
# behaviors in output on IRC, so do not use those.
|
||||||
|
SEP3_IRC=''
|
||||||
|
SEP3_CONSOLE=':'
|
||||||
|
SEP3='' # do not set, will be set dynamically
|
||||||
|
|
||||||
|
# Default indentation level. NOTE: actual indent is 1 greater to allow for spacing
|
||||||
|
INDENT=10
|
||||||
|
|
||||||
|
### COLUMN WIDTHS ###
|
||||||
|
COLS_INNER='' ## for width minus INDENT
|
||||||
|
COLS_MAX=''
|
||||||
|
|
||||||
TERM_COLUMNS=80
|
TERM_COLUMNS=80
|
||||||
|
TERM_LINES=100
|
||||||
|
|
||||||
# http://stackoverflow.com/questions/1780483/lines-and-columns-environmental-variables-lost-in-a-script
|
# http://stackoverflow.com/questions/1780483/lines-and-columns-environmental-variables-lost-in-a-script
|
||||||
if [[ -n $( type -p tput ) ]];then
|
if [[ -n $( type -p tput ) ]];then
|
||||||
TERM_LINES=$(tput lines)
|
|
||||||
TERM_COLUMNS=$(tput cols)
|
TERM_COLUMNS=$(tput cols)
|
||||||
|
TERM_LINES=$(tput lines)
|
||||||
fi
|
fi
|
||||||
# double check, just in case it's missing functionality or whatever
|
# double check, just in case it's missing functionality or whatever
|
||||||
if [[ -n ${TERM_COLUMNS##[0-9]*} ]];then
|
if [[ -n ${TERM_COLUMNS##[0-9]*} ]];then
|
||||||
TERM_LINES=100
|
|
||||||
TERM_COLUMNS=80
|
TERM_COLUMNS=80
|
||||||
|
TERM_LINES=100
|
||||||
fi
|
fi
|
||||||
|
|
||||||
### Script Localization
|
# Only for legacy user config files se we can test and convert the var name
|
||||||
# Make sure every program speaks English.
|
LINE_MAX_CONSOLE=''
|
||||||
LC_ALL="C"
|
LINE_MAX_IRC=''
|
||||||
export LC_ALL
|
|
||||||
|
|
||||||
### Output Colors
|
### COLORS ###
|
||||||
|
# Defaults to 2, make this 1 for normal, 0 for no colorcodes at all. Use following variables in config
|
||||||
|
# files to change defaults for each type, or global
|
||||||
|
# Same as runtime parameter.
|
||||||
|
DEFAULT_COLOR_SCHEME=2
|
||||||
|
## color variables - set dynamically
|
||||||
|
COLOR_SCHEME=''
|
||||||
|
C1=''
|
||||||
|
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
|
||||||
|
GLOBAL_COLOR_SCHEME=''
|
||||||
|
IRC_COLOR_SCHEME=''
|
||||||
|
IRC_CONS_COLOR_SCHEME=''
|
||||||
|
IRC_X_TERM_COLOR_SCHEME=''
|
||||||
|
CONSOLE_COLOR_SCHEME=''
|
||||||
|
VIRT_TERM_COLOR_SCHEME=''
|
||||||
|
|
||||||
|
## Output colors
|
||||||
# A more elegant way to have a scheme that doesn't print color codes (neither ANSI nor mIRC) at all. See below.
|
# A more elegant way to have a scheme that doesn't print color codes (neither ANSI nor mIRC) at all. See below.
|
||||||
unset EMPTY
|
unset EMPTY
|
||||||
# DGREY BLACK RED DRED GREEN DGREEN YELLOW DYELLOW
|
# DGREY BLACK RED DRED GREEN DGREEN YELLOW DYELLOW
|
||||||
|
@ -558,12 +585,12 @@ RED,WHITE,NORMAL
|
||||||
BLUE,WHITE,NORMAL
|
BLUE,WHITE,NORMAL
|
||||||
)
|
)
|
||||||
|
|
||||||
## Actual color variables
|
# WARNING: In the main part below (search for 'KONVI')
|
||||||
C1=''
|
# there's a check for Konversation-specific config files.
|
||||||
C2=''
|
# Any one of these can override the above if inxi is run
|
||||||
CN=''
|
# from Konversation!
|
||||||
|
|
||||||
### Distro Data
|
## DISTRO DATA/ID ##
|
||||||
# In cases of derived distros where the version file of the base distro can also be found under /etc,
|
# 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)
|
# 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 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 sabayon-release siduction-version sidux-version solusos-release turbolinux-release zenwalk-version"
|
||||||
|
@ -578,7 +605,7 @@ DISTROS_OS_RELEASE_GOOD="arch-release SuSE-release"
|
||||||
# DSL (Bash 2.05b: grep -m doesn't work; arrays won't work) --> unusable output
|
# DSL (Bash 2.05b: grep -m doesn't work; arrays won't work) --> unusable output
|
||||||
# Puppy Linux 4.1.2 (Bash 3.0: arrays won't work) --> works partially
|
# Puppy Linux 4.1.2 (Bash 3.0: arrays won't work) --> works partially
|
||||||
|
|
||||||
### Bans Data
|
## OUTPUT FILTERS/SEARCH ##
|
||||||
# Note that \<ltd\> bans only words, not parts of strings; in \<corp\> you can't use punctuation characters like . or ,
|
# Note that \<ltd\> bans only words, not parts of strings; in \<corp\> you can't use punctuation characters like . or ,
|
||||||
# we're saving about 10+% of the total script exec time by hand building the ban lists here, using hard quotes.
|
# we're saving about 10+% of the total script exec time by hand building the ban lists here, using hard quotes.
|
||||||
BAN_LIST_NORMAL='chipset|components|computing|computer|corporation|communications|electronics|electrical|electric|gmbh|group|industrial|international|revision|semiconductor|software|technologies|technology|ltd\.|\<ltd\>|inc\.|\<inc\>|intl\.|co\.|\<co\>|corp\.|\<corp\>|\(tm\)|\(r\)|®|\(rev ..\)'
|
BAN_LIST_NORMAL='chipset|components|computing|computer|corporation|communications|electronics|electrical|electric|gmbh|group|industrial|international|revision|semiconductor|software|technologies|technology|ltd\.|\<ltd\>|inc\.|\<inc\>|intl\.|co\.|\<co\>|corp\.|\<corp\>|\(tm\)|\(r\)|®|\(rev ..\)'
|
||||||
|
@ -595,11 +622,6 @@ USB_NETWORK_SEARCH="$USB_NETWORK_SEARCH|Actiontec.*Wireless|Actiontec.*Network|A
|
||||||
# belkin=050d; d-link=07d1; netgear=0846; ralink=148f; realtek=0bda;
|
# belkin=050d; d-link=07d1; netgear=0846; ralink=148f; realtek=0bda;
|
||||||
USB_NETWORK_SEARCH="$USB_NETWORK_SEARCH|050d:935b|0bda:8189|0bda:8197"
|
USB_NETWORK_SEARCH="$USB_NETWORK_SEARCH|050d:935b|0bda:8189|0bda:8197"
|
||||||
|
|
||||||
# WARNING: In the main part below (search for 'KONVI')
|
|
||||||
# there's a check for Konversation-specific config files.
|
|
||||||
# Any one of these can override the above if inxi is run
|
|
||||||
# from Konversation!
|
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
#### MAIN: Where it all begins
|
#### MAIN: Where it all begins
|
||||||
########################################################################
|
########################################################################
|
||||||
|
@ -623,6 +645,34 @@ main()
|
||||||
if [[ -s $HOME/.$SCRIPT_NAME/$SCRIPT_NAME.conf ]];then
|
if [[ -s $HOME/.$SCRIPT_NAME/$SCRIPT_NAME.conf ]];then
|
||||||
source $HOME/.$SCRIPT_NAME/$SCRIPT_NAME.conf
|
source $HOME/.$SCRIPT_NAME/$SCRIPT_NAME.conf
|
||||||
fi
|
fi
|
||||||
|
# Convert to new variable names if set in config files, legacy test
|
||||||
|
if [[ -n $LINE_MAX_CONSOLE ]];then
|
||||||
|
COLS_MAX_CONSOLE=$LINE_MAX_CONSOLE
|
||||||
|
fi
|
||||||
|
if [[ -n $LINE_MAX_IRC ]];then
|
||||||
|
COLS_MAX_IRC=$LINE_MAX_IRC
|
||||||
|
fi
|
||||||
|
# TERM_COLUMNS is set in top globals, using tput cols
|
||||||
|
if [[ $TERM_COLUMNS -lt $COLS_MAX_CONSOLE ]];then
|
||||||
|
COLS_MAX_CONSOLE=$TERM_COLUMNS
|
||||||
|
fi
|
||||||
|
# adjust, some terminals will wrap if output cols == term cols
|
||||||
|
COLS_MAX_CONSOLE=$(( $COLS_MAX_CONSOLE - 2 ))
|
||||||
|
|
||||||
|
# comes after source for user set stuff
|
||||||
|
if [[ $B_RUNNING_IN_SHELL == 'true' ]];then
|
||||||
|
COLS_MAX=$COLS_MAX_CONSOLE
|
||||||
|
SEP3=$SEP3_CONSOLE
|
||||||
|
else
|
||||||
|
# too hard to read if no colors, so force that for users on irc
|
||||||
|
if [[ $SCHEME == 0 ]];then
|
||||||
|
SEP3=$SEP3_CONSOLE
|
||||||
|
else
|
||||||
|
SEP3=$SEP3_IRC
|
||||||
|
fi
|
||||||
|
COLS_MAX=$COLS_MAX_IRC
|
||||||
|
fi
|
||||||
|
COLS_INNER=$(( $COLS_MAX - $INDENT - 4 ))
|
||||||
|
|
||||||
# Check for dependencies BEFORE running ANYTHING else except above functions
|
# Check for dependencies BEFORE running ANYTHING else except above functions
|
||||||
# Not all distro's have these depends installed by default. Don't want to run
|
# Not all distro's have these depends installed by default. Don't want to run
|
||||||
|
@ -716,18 +766,6 @@ main()
|
||||||
set_color_scheme $color_scheme
|
set_color_scheme $color_scheme
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if [[ $B_RUNNING_IN_SHELL == 'true' ]];then
|
|
||||||
LINE_MAX=$LINE_MAX_CONSOLE
|
|
||||||
SEP3=$SEP3_CONSOLE
|
|
||||||
else
|
|
||||||
# too hard to read if no colors, so force that for users on irc
|
|
||||||
if [[ $SCHEME == 0 ]];then
|
|
||||||
SEP3=$SEP3_CONSOLE
|
|
||||||
else
|
|
||||||
SEP3=$SEP3_IRC
|
|
||||||
fi
|
|
||||||
LINE_MAX=$LINE_MAX_IRC
|
|
||||||
fi
|
|
||||||
|
|
||||||
# all the pre-start stuff is in place now
|
# all the pre-start stuff is in place now
|
||||||
B_SCRIPT_UP='true'
|
B_SCRIPT_UP='true'
|
||||||
|
@ -2487,7 +2525,7 @@ show_options()
|
||||||
print_lines_basic "2" "97" "Console IRC running in X - like irssi in xTerm"
|
print_lines_basic "2" "97" "Console IRC running in X - like irssi in xTerm"
|
||||||
print_lines_basic "2" "98" "Console IRC not in X"
|
print_lines_basic "2" "98" "Console IRC not in X"
|
||||||
print_lines_basic "2" "99" "Global - Overrides/removes all settings. Setting specific removes global."
|
print_lines_basic "2" "99" "Global - Overrides/removes all settings. Setting specific removes global."
|
||||||
print_lines_basic "1" "-C" "Full CPU output, including per CPU clockspeed (if available)."
|
print_lines_basic "1" "-C" "CPU output, including per CPU clockspeed (if available)."
|
||||||
print_lines_basic "1" "-d" "Optical drive data. Same as -Dd. See also -x and -xx."
|
print_lines_basic "1" "-d" "Optical drive data. Same as -Dd. See also -x and -xx."
|
||||||
print_lines_basic "1" "-D" "Full hard Disk info, not only model, ie: /dev/sda ST380817AS 80.0GB. See also -x and -xx."
|
print_lines_basic "1" "-D" "Full hard Disk info, not only model, ie: /dev/sda ST380817AS 80.0GB. See also -x and -xx."
|
||||||
print_lines_basic "1" "-f" "All cpu flags, triggers -C. Not shown with -F to avoid spamming. ARM cpus show 'features'."
|
print_lines_basic "1" "-f" "All cpu flags, triggers -C. Not shown with -F to avoid spamming. ARM cpus show 'features'."
|
||||||
|
@ -2526,7 +2564,7 @@ show_options()
|
||||||
print_lines_basic "1" "-W" "<location> Supported options for <location>: postal code; city, state/country; latitude/longitude. Only use if you want the weather somewhere other than the machine running $SCRIPT_NAME. Use only ascii characters, replace spaces in city/state/country names with '+'. Example:^$SCRIPT_NAME^-W^new+york,ny"
|
print_lines_basic "1" "-W" "<location> Supported options for <location>: postal code; city, state/country; latitude/longitude. Only use if you want the weather somewhere other than the machine running $SCRIPT_NAME. Use only ascii characters, replace spaces in city/state/country names with '+'. Example:^$SCRIPT_NAME^-W^new+york,ny"
|
||||||
fi
|
fi
|
||||||
print_lines_basic "1" "-x" "Adds the following extra data (only works with verbose or line output, not short form):"
|
print_lines_basic "1" "-x" "Adds the following extra data (only works with verbose or line output, not short form):"
|
||||||
print_lines_basic "2" "-C" "Bogomips on Cpu;"
|
print_lines_basic "2" "-C" "CPU Flags, Bogomips on Cpu;"
|
||||||
print_lines_basic "2" "-d" "Extra optical drive data; adds rev version to optical drive."
|
print_lines_basic "2" "-d" "Extra optical drive data; adds rev version to optical drive."
|
||||||
print_lines_basic "2" "-D" "Hdd temp with disk data if you have hddtemp installed, if you are root OR if you have added to /etc/sudoers (sudo v. 1.7 or newer) Example:^<username>^ALL^=^NOPASSWD:^/usr/sbin/hddtemp"
|
print_lines_basic "2" "-D" "Hdd temp with disk data if you have hddtemp installed, if you are root OR if you have added to /etc/sudoers (sudo v. 1.7 or newer) Example:^<username>^ALL^=^NOPASSWD:^/usr/sbin/hddtemp"
|
||||||
print_lines_basic "2" "-G" "Direct rendering status for Graphics (in X)."
|
print_lines_basic "2" "-G" "Direct rendering status for Graphics (in X)."
|
||||||
|
@ -2611,26 +2649,19 @@ show_options()
|
||||||
print_screen_output " "
|
print_screen_output " "
|
||||||
}
|
}
|
||||||
|
|
||||||
# uses $TERM_COLUMNS global in terminal to set width using $LINE_MAX_BASIC
|
# uses $TERM_COLUMNS to set width using $COLS_MAX as max width
|
||||||
# IMPORTANT: minimize use of subshells here or the output is too slow
|
# IMPORTANT: minimize use of subshells here or the output is too slow
|
||||||
# args: $1 - 0 1 2 3 4 for indentation level; $2 -line starter, like -m; $3 - content of block.
|
# args: $1 - 0 1 2 3 4 for indentation level; $2 -line starter, like -m; $3 - content of block.
|
||||||
print_lines_basic()
|
print_lines_basic()
|
||||||
{
|
{
|
||||||
local line_width=$LINE_MAX_BASIC
|
local line_width=$COLS_MAX
|
||||||
local line_starter=$2
|
|
||||||
local print_string='' indent_inner='' indent_full='' indent_x=''
|
local print_string='' indent_inner='' indent_full='' indent_x=''
|
||||||
local indent_working='' indent_working_full=''
|
local indent_working='' indent_working_full=''
|
||||||
local line_starter='' line_1_starter='' line_x_starter=''
|
local line_starter='' line_1_starter='' line_x_starter=''
|
||||||
# note: to create a padded string below
|
# note: to create a padded string below
|
||||||
local fake_string=' ' temp_count='' line_count='' spacer=''
|
local fake_string=' ' temp_count='' line_count='' spacer=''
|
||||||
|
|
||||||
local indent_main=6 indent_x='' b_indent_x='true'
|
local indent_main=6 indent_x='' b_indent_x='true'
|
||||||
|
|
||||||
# TERM_COLUMNS is set in top globals, using tput cols
|
|
||||||
if [[ $TERM_COLUMNS -lt $LINE_MAX_BASIC ]];then
|
|
||||||
line_width=$TERM_COLUMNS
|
|
||||||
fi
|
|
||||||
|
|
||||||
case $1 in
|
case $1 in
|
||||||
# for no options, start at left edge
|
# for no options, start at left edge
|
||||||
0) indent_full=0
|
0) indent_full=0
|
||||||
|
@ -2639,7 +2670,6 @@ print_lines_basic()
|
||||||
b_indent_x='false'
|
b_indent_x='false'
|
||||||
;;
|
;;
|
||||||
1) indent_full=$indent_main
|
1) indent_full=$indent_main
|
||||||
# temp_count=$( wc -c <<< $2 )
|
|
||||||
temp_count=${#2}
|
temp_count=${#2}
|
||||||
if [[ $temp_count -le $indent_full ]];then
|
if [[ $temp_count -le $indent_full ]];then
|
||||||
indent_working=$indent_full
|
indent_working=$indent_full
|
||||||
|
@ -2692,19 +2722,13 @@ print_lines_basic()
|
||||||
|
|
||||||
line_count=$(( $line_width - $indent_full ))
|
line_count=$(( $line_width - $indent_full ))
|
||||||
|
|
||||||
# bash loop is so slow, only run this if required
|
# bash loop is slow, only run this if required
|
||||||
# temp_count=$( wc -c <<< $3 )
|
if [[ ${#3} -gt $line_count ]];then
|
||||||
temp_count=${#3}
|
|
||||||
# line_count=1000
|
|
||||||
if [[ $temp_count -gt $line_count ]];then
|
|
||||||
for word in $3
|
for word in $3
|
||||||
do
|
do
|
||||||
temp_string="$print_string$spacer$word"
|
temp_string="$print_string$spacer$word"
|
||||||
spacer=' '
|
spacer=' '
|
||||||
# note: wc -c here will return +1 actual string length
|
if [[ ${#temp_string} -lt $line_count ]];then
|
||||||
#temp_count=$( wc -c <<< $temp_string )
|
|
||||||
temp_count=${#temp_string}
|
|
||||||
if [[ $temp_count -lt $line_count ]];then
|
|
||||||
print_string=$temp_string # lose any white space start/end
|
print_string=$temp_string # lose any white space start/end
|
||||||
# echo -n $(( $line_width - $indent_full ))
|
# echo -n $(( $line_width - $indent_full ))
|
||||||
else
|
else
|
||||||
|
@ -8731,7 +8755,6 @@ calculate_line_length()
|
||||||
local string="$1"
|
local string="$1"
|
||||||
# ansi: [1;34m irc: \x0312
|
# 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 )
|
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 )
|
||||||
# count=$( wc -c <<< $string )
|
|
||||||
count=${#string}
|
count=${#string}
|
||||||
echo $count
|
echo $count
|
||||||
}
|
}
|
||||||
|
@ -9110,13 +9133,13 @@ print_audio_data()
|
||||||
fi
|
fi
|
||||||
# only print alsa on last line if short enough, otherwise print on its own line
|
# only print alsa on last line if short enough, otherwise print on its own line
|
||||||
if [[ $i -eq 0 ]];then
|
if [[ $i -eq 0 ]];then
|
||||||
if [[ -n $alsa_data && $( calculate_line_length "$card_string${audio_data}$alsa_data" ) -lt $LINE_MAX ]];then
|
if [[ -n $alsa_data && $( calculate_line_length "$card_string${audio_data}$alsa_data" ) -lt $COLS_INNER ]];then
|
||||||
audio_data="$audio_data$alsa_data"
|
audio_data="$audio_data$alsa_data"
|
||||||
alsa_data=''
|
alsa_data=''
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if [[ -n $audio_data ]];then
|
if [[ -n $audio_data ]];then
|
||||||
if [[ $( calculate_line_length "$card_string$audio_data" ) -lt $LINE_MAX ]];then
|
if [[ $( calculate_line_length "$card_string$audio_data" ) -lt $COLS_INNER ]];then
|
||||||
print_data=$( create_print_line "$line_starter" "$card_string$audio_data" )
|
print_data=$( create_print_line "$line_starter" "$card_string$audio_data" )
|
||||||
print_screen_output "$print_data"
|
print_screen_output "$print_data"
|
||||||
# print the line
|
# print the line
|
||||||
|
@ -9153,6 +9176,7 @@ print_cpu_data()
|
||||||
local a_cpu_working='' cpu_model='' cpu_clock='' cpu_null_error=''
|
local a_cpu_working='' cpu_model='' cpu_clock='' cpu_null_error=''
|
||||||
local cpc_plural='' cpu_count_print='' model_plural='' cpu_data_string=''
|
local cpc_plural='' cpu_count_print='' model_plural='' cpu_data_string=''
|
||||||
local cpu_physical_count='' cpu_core_count='' cpu_core_alpha='' cpu_type=''
|
local cpu_physical_count='' cpu_core_count='' cpu_core_alpha='' cpu_type=''
|
||||||
|
local cpu_2_data=''
|
||||||
|
|
||||||
##print_screen_output "A_CPU_DATA[0]=\"${A_CPU_DATA[0]}\""
|
##print_screen_output "A_CPU_DATA[0]=\"${A_CPU_DATA[0]}\""
|
||||||
# Array A_CPU_DATA always has one extra element: max clockfreq found.
|
# Array A_CPU_DATA always has one extra element: max clockfreq found.
|
||||||
|
@ -9227,6 +9251,7 @@ print_cpu_data()
|
||||||
# only print shortened list
|
# only print shortened list
|
||||||
if [[ $B_CPU_FLAGS_FULL != 'true' ]];then
|
if [[ $B_CPU_FLAGS_FULL != 'true' ]];then
|
||||||
# gawk has already sorted this output, no flags returns -
|
# gawk has already sorted this output, no flags returns -
|
||||||
|
if [[ $B_EXTRA_DATA == 'true' ]];then
|
||||||
cpu_flags=$( process_cpu_flags "${a_cpu_working[3]}" "${a_cpu_working[6]}" )
|
cpu_flags=$( process_cpu_flags "${a_cpu_working[3]}" "${a_cpu_working[6]}" )
|
||||||
cpu_flags="($cpu_flags)"
|
cpu_flags="($cpu_flags)"
|
||||||
if [[ ${a_cpu_working[6]} == 'true' ]];then
|
if [[ ${a_cpu_working[6]} == 'true' ]];then
|
||||||
|
@ -9234,9 +9259,11 @@ print_cpu_data()
|
||||||
fi
|
fi
|
||||||
cpu_flags="${C1}$flag_feature$SEP3${C2} $cpu_flags "
|
cpu_flags="${C1}$flag_feature$SEP3${C2} $cpu_flags "
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
# arm cpus do not have flags or cache
|
# arm cpus do not have flags or cache
|
||||||
if [[ ${a_cpu_working[6]} != 'true' ]];then
|
if [[ ${a_cpu_working[6]} != 'true' ]];then
|
||||||
cpu_data="$cpu_data${C2} ${C1}cache$SEP3${C2} $cpu_cache$cpu_flags$bmip_data${CN}"
|
cpu_data="$cpu_data${C2} ${C1}cache$SEP3${C2} $cpu_cache${CN}"
|
||||||
|
cpu_2_data="$cpu_flags$bmip_data${CN}"
|
||||||
else
|
else
|
||||||
cpu_data="$cpu_data${C2} (ARM)$bmip_data${CN}"
|
cpu_data="$cpu_data${C2} (ARM)$bmip_data${CN}"
|
||||||
fi
|
fi
|
||||||
|
@ -9247,14 +9274,24 @@ print_cpu_data()
|
||||||
else
|
else
|
||||||
cpu_data="$cpu_data ${C1}clocked at${C2} ${a_cpu_working[1]} MHz${CN}"
|
cpu_data="$cpu_data ${C1}clocked at${C2} ${a_cpu_working[1]} MHz${CN}"
|
||||||
fi
|
fi
|
||||||
cpu_data="$cpu_data $cpu_clock_speed"
|
cpu_2_data="$cpu_2_data$cpu_clock_speed"
|
||||||
else
|
else
|
||||||
if [[ $BSD_TYPE == 'bsd' && $B_ROOT != 'true' ]];then
|
if [[ $BSD_TYPE == 'bsd' && $B_ROOT != 'true' ]];then
|
||||||
cpu_null_error=' No permissions for sysctl use?'
|
cpu_null_error=' No permissions for sysctl use?'
|
||||||
fi
|
fi
|
||||||
cpu_data=$( create_print_line "CPU:" "${C2}No CPU data available.$cpu_null_error" )
|
cpu_data=$( create_print_line "CPU:" "${C2}No CPU data available.$cpu_null_error" )
|
||||||
fi
|
fi
|
||||||
|
# echo ln: $( calculate_line_length "$cpu_data $cpu_2_data" )
|
||||||
|
# echo icols: $COLS_INNER
|
||||||
|
# echo tc: $TERM_COLUMNS
|
||||||
|
# echo :$cpu_2_data:
|
||||||
|
if [[ -n $cpu_2_data && $( calculate_line_length "$cpu_data $cpu_2_data" ) -gt $COLS_INNER ]];then
|
||||||
print_screen_output "$cpu_data"
|
print_screen_output "$cpu_data"
|
||||||
|
cpu_data=$( create_print_line " " "$cpu_2_data" )
|
||||||
|
print_screen_output "$cpu_data"
|
||||||
|
else
|
||||||
|
print_screen_output "$cpu_data $cpu_2_data"
|
||||||
|
fi
|
||||||
# we don't this printing out extra line unless > 1 cpu core
|
# we don't this printing out extra line unless > 1 cpu core
|
||||||
# note the numbering, the last array item is the min/max/not found for cpu speeds
|
# note the numbering, the last array item is the min/max/not found for cpu speeds
|
||||||
if [[ ${#A_CPU_DATA[@]} -gt 2 && $B_SHOW_CPU == 'true' ]];then
|
if [[ ${#A_CPU_DATA[@]} -gt 2 && $B_SHOW_CPU == 'true' ]];then
|
||||||
|
@ -9289,30 +9326,37 @@ print_cpu_flags_full()
|
||||||
eval $LOGFS
|
eval $LOGFS
|
||||||
# note: sort only sorts lines, not words in a string, so convert to lines
|
# note: sort only sorts lines, not words in a string, so convert to lines
|
||||||
local cpu_flags_full="$( echo $1 | tr " " "\n" | sort )"
|
local cpu_flags_full="$( echo $1 | tr " " "\n" | sort )"
|
||||||
local a_cpu_flags='' line_starter='' temp_count=''
|
local a_cpu_flags='' line_starter='' temp_string=''
|
||||||
local i=0 counter=0 max_length=85 max_length_minus=15 flag='' flag_data=''
|
local i=0 counter=0 starter_length=15 flag='' flag_data=''
|
||||||
local line_length_max='' flag_feature='Flags'
|
local line_length='' flag_feature='Flags' spacer='' flag_string=''
|
||||||
|
|
||||||
if [[ $2 == 'true' ]];then
|
if [[ $2 == 'true' ]];then
|
||||||
flag_feature='Features'
|
flag_feature='Features'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# build the flag line array
|
# build the flag line array
|
||||||
for flag in $cpu_flags_full
|
for flag in $cpu_flags_full
|
||||||
do
|
do
|
||||||
a_cpu_flags[$counter]="${a_cpu_flags[$counter]}$flag "
|
temp_string="$flag_string$spacer$flag"
|
||||||
|
spacer=' '
|
||||||
|
# handle inner line starter
|
||||||
if [[ $counter -eq 0 ]];then
|
if [[ $counter -eq 0 ]];then
|
||||||
line_length_max=$(( $max_length - $max_length_minus ))
|
line_length=$(( $COLS_INNER - $starter_length ))
|
||||||
else
|
else
|
||||||
line_length_max=$max_length
|
line_length=$COLS_INNER
|
||||||
fi
|
fi
|
||||||
# temp_count=$( wc -c <<< ${a_cpu_flags[$counter]} )
|
if [[ ${#temp_string} -gt $line_length ]];then
|
||||||
temp_count=${#a_cpu_flags[$counter]}
|
a_cpu_flags[$counter]=$temp_string
|
||||||
if [[ $temp_count -gt $line_length_max ]];then
|
flag_string=''
|
||||||
|
spacer=''
|
||||||
(( counter++ ))
|
(( counter++ ))
|
||||||
|
else
|
||||||
|
flag_string=$temp_string
|
||||||
fi
|
fi
|
||||||
|
temp_string=''
|
||||||
done
|
done
|
||||||
|
if [[ -n $flag_string ]];then
|
||||||
|
a_cpu_flags[$counter]=$flag_string
|
||||||
|
fi
|
||||||
# then print it out
|
# then print it out
|
||||||
for (( i=0; i < ${#a_cpu_flags[@]};i++ ))
|
for (( i=0; i < ${#a_cpu_flags[@]};i++ ))
|
||||||
do
|
do
|
||||||
|
@ -9476,7 +9520,7 @@ print_graphics_data()
|
||||||
else
|
else
|
||||||
graphics_data="${C1}Card:${C2} Failed to Detect Video Card! "
|
graphics_data="${C1}Card:${C2} Failed to Detect Video Card! "
|
||||||
fi
|
fi
|
||||||
if [[ -n $graphics_data && $( calculate_line_length "${graphics_data}$display_full_string" ) -lt $LINE_MAX ]];then
|
if [[ -n $graphics_data && $( calculate_line_length "${graphics_data}$display_full_string" ) -lt $COLS_INNER ]];then
|
||||||
graphics_data=$( create_print_line "$line_starter" "${graphics_data}$display_full_string" )
|
graphics_data=$( create_print_line "$line_starter" "${graphics_data}$display_full_string" )
|
||||||
else
|
else
|
||||||
if [[ -n $graphics_data ]];then
|
if [[ -n $graphics_data ]];then
|
||||||
|
@ -9741,7 +9785,7 @@ print_info_data()
|
||||||
closing_data="$client_data${C1}$SCRIPT_NAME$SEP3${C2} $SCRIPT_VERSION_NUMBER$patch_version_number${CN}"
|
closing_data="$client_data${C1}$SCRIPT_NAME$SEP3${C2} $SCRIPT_VERSION_NUMBER$patch_version_number${CN}"
|
||||||
|
|
||||||
# sometimes gcc is very long, and default runlevel can be long with systemd, so create a gcc-less line first
|
# sometimes gcc is very long, and default runlevel can be long with systemd, so create a gcc-less line first
|
||||||
if [[ $( calculate_line_length "${info_data}${init_data}${gcc_installed}${closing_data}" ) -gt $LINE_MAX ]];then
|
if [[ $( calculate_line_length "${info_data}${init_data}${gcc_installed}${closing_data}" ) -gt $COLS_INNER ]];then
|
||||||
info_data=${info_data}${init_data}
|
info_data=${info_data}${init_data}
|
||||||
info_data=$( create_print_line "$line_starter" "$info_data" )
|
info_data=$( create_print_line "$line_starter" "$info_data" )
|
||||||
print_screen_output "$info_data"
|
print_screen_output "$info_data"
|
||||||
|
@ -9751,7 +9795,7 @@ print_info_data()
|
||||||
line_starter=' '
|
line_starter=' '
|
||||||
#echo 1
|
#echo 1
|
||||||
fi
|
fi
|
||||||
if [[ $( calculate_line_length "${info_data}${init_data}${gcc_installed}${closing_data}" ) -gt $LINE_MAX ]];then
|
if [[ $( calculate_line_length "${info_data}${init_data}${gcc_installed}${closing_data}" ) -gt $COLS_INNER ]];then
|
||||||
info_data=${info_data}${init_data}${gcc_installed}
|
info_data=${info_data}${init_data}${gcc_installed}
|
||||||
info_data=$( create_print_line "$line_starter" "$info_data" )
|
info_data=$( create_print_line "$line_starter" "$info_data" )
|
||||||
print_screen_output "$info_data"
|
print_screen_output "$info_data"
|
||||||
|
@ -9882,7 +9926,7 @@ print_machine_data()
|
||||||
fi
|
fi
|
||||||
mobo_line="${C1}Mobo$SEP3${C2} $mobo_vendor ${C1}model$SEP3${C2} $mobo_model$mobo_version$mobo_serial"
|
mobo_line="${C1}Mobo$SEP3${C2} $mobo_vendor ${C1}model$SEP3${C2} $mobo_model$mobo_version$mobo_serial"
|
||||||
bios_line="${C1}Bios$SEP3${C2} $bios_vendor ${C1}version$SEP3${C2} $bios_version ${C1}date$SEP3${C2} $bios_date$bios_rom"
|
bios_line="${C1}Bios$SEP3${C2} $bios_vendor ${C1}version$SEP3${C2} $bios_version ${C1}date$SEP3${C2} $bios_date$bios_rom"
|
||||||
if [[ $( calculate_line_length "$mobo_line$bios_line" ) -lt $LINE_MAX ]];then
|
if [[ $( calculate_line_length "$mobo_line$bios_line" ) -lt $COLS_INNER ]];then
|
||||||
mobo_line="$mobo_line $bios_line"
|
mobo_line="$mobo_line $bios_line"
|
||||||
bios_line=''
|
bios_line=''
|
||||||
fi
|
fi
|
||||||
|
@ -9907,7 +9951,7 @@ print_machine_data()
|
||||||
product_serial=" ${C1}serial$SEP3${C2} ${A_MACHINE_DATA[3]} "
|
product_serial=" ${C1}serial$SEP3${C2} ${A_MACHINE_DATA[3]} "
|
||||||
fi
|
fi
|
||||||
system_line="${C1}System$SEP3${C2} $system_vendor ${C1}product$SEP3${C2} $product_name$product_version$product_serial"
|
system_line="${C1}System$SEP3${C2} $system_vendor ${C1}product$SEP3${C2} $product_name$product_version$product_serial"
|
||||||
if [[ -n $chassis_line && $( calculate_line_length "$system_line$chassis_line" ) -lt $LINE_MAX ]];then
|
if [[ -n $chassis_line && $( calculate_line_length "$system_line$chassis_line" ) -lt $COLS_INNER ]];then
|
||||||
system_line="$system_line $chassis_line"
|
system_line="$system_line $chassis_line"
|
||||||
chassis_line=''
|
chassis_line=''
|
||||||
fi
|
fi
|
||||||
|
@ -10064,7 +10108,7 @@ print_networking_data()
|
||||||
fi
|
fi
|
||||||
card_string="${C1}Card$card_id:${C2} ${a_network_working[0]} "
|
card_string="${C1}Card$card_id:${C2} ${a_network_working[0]} "
|
||||||
card_data="$driver_data$port_data$pci_bus_id$chip_id"
|
card_data="$driver_data$port_data$pci_bus_id$chip_id"
|
||||||
if [[ $( calculate_line_length "$card_string$card_data" ) -gt $LINE_MAX ]];then
|
if [[ $( calculate_line_length "$card_string$card_data" ) -gt $COLS_INNER ]];then
|
||||||
network_data=$( create_print_line "$line_starter" "$card_string" )
|
network_data=$( create_print_line "$line_starter" "$card_string" )
|
||||||
line_starter=' '
|
line_starter=' '
|
||||||
card_string=''
|
card_string=''
|
||||||
|
@ -10143,7 +10187,7 @@ print_networking_ip_data()
|
||||||
local wan_ip_data='' a_interfaces_working='' interfaces='' i=''
|
local wan_ip_data='' a_interfaces_working='' interfaces='' i=''
|
||||||
local if_id='' if_ip='' if_ipv6='' if_ipv6_string='' full_string='' if_string=''
|
local if_id='' if_ip='' if_ipv6='' if_ipv6_string='' full_string='' if_string=''
|
||||||
local if_id_string='' if_ip_string=''
|
local if_id_string='' if_ip_string=''
|
||||||
local line_max=$(( $LINE_MAX - 50 ))
|
local line_max=$(( $COLS_INNER - 40 ))
|
||||||
|
|
||||||
# set A_INTERFACES_DATA
|
# set A_INTERFACES_DATA
|
||||||
get_networking_local_ip_data
|
get_networking_local_ip_data
|
||||||
|
@ -10364,9 +10408,9 @@ print_partition_data()
|
||||||
{
|
{
|
||||||
eval $LOGFS
|
eval $LOGFS
|
||||||
local a_partition_working='' partition_used='' partition_data=''
|
local a_partition_working='' partition_used='' partition_data=''
|
||||||
local counter=0 i=0 a_partition_data='' line_starter='' line_max=$(( $LINE_MAX - 35 ))
|
local counter=0 i=0 a_partition_data='' line_starter='' line_max=$(( $COLS_INNER - 25 ))
|
||||||
local partitionIdClean='' part_dev='' full_dev='' part_label='' full_label=''
|
local partitionIdClean='' part_dev='' full_dev='' part_label='' full_label=''
|
||||||
local part_uuid='' full_uuid='' dev_remote='' full_fs='' line_max_label_uuid=$(( $LINE_MAX - 10 ))
|
local part_uuid='' full_uuid='' dev_remote='' full_fs='' line_max_label_uuid=$COLS_INNER
|
||||||
local b_non_dev='false' holder=''
|
local b_non_dev='false' holder=''
|
||||||
|
|
||||||
# set A_PARTITION_DATA
|
# set A_PARTITION_DATA
|
||||||
|
@ -10473,7 +10517,7 @@ print_program_version()
|
||||||
# left pad: sed -e :a -e 's/^.\{1,80\}$/& /;ta'
|
# left pad: sed -e :a -e 's/^.\{1,80\}$/& /;ta'
|
||||||
# right pad: sed -e :a -e 's/^.\{1,80\}$/ &/;ta'
|
# right pad: sed -e :a -e 's/^.\{1,80\}$/ &/;ta'
|
||||||
# center pad: sed -e :a -e 's/^.\{1,80\}$/ & /;ta'
|
# center pad: sed -e :a -e 's/^.\{1,80\}$/ & /;ta'
|
||||||
#local line_max=$(( $LINE_MAX - 10 ))
|
#local line_max=$COLS_INNER
|
||||||
#program_version="$( sed -e :a -e "s/^.\{1,$line_max\}$/ &/;ta" <<< $program_version )" # use to create padding if needed
|
#program_version="$( sed -e :a -e "s/^.\{1,$line_max\}$/ &/;ta" <<< $program_version )" # use to create padding if needed
|
||||||
# program_version=$( create_print_line "Version:" "$program_version" )
|
# program_version=$( create_print_line "Version:" "$program_version" )
|
||||||
print_screen_output "$program_version"
|
print_screen_output "$program_version"
|
||||||
|
@ -11154,7 +11198,7 @@ print_system_data()
|
||||||
system_data=$( create_print_line "System:" "$host_string$host_name ${C1}Kernel$SEP3${C2}" )
|
system_data=$( create_print_line "System:" "$host_string$host_name ${C1}Kernel$SEP3${C2}" )
|
||||||
fi
|
fi
|
||||||
host_kernel_string="$host_string${C1}Kernel$SEP3${C2} $current_kernel$bits "
|
host_kernel_string="$host_string${C1}Kernel$SEP3${C2} $current_kernel$bits "
|
||||||
if [[ $( calculate_line_length "$host_kernel_string$de_distro_string" ) -lt $LINE_MAX ]];then
|
if [[ $( calculate_line_length "$host_kernel_string$de_distro_string" ) -lt $COLS_INNER ]];then
|
||||||
system_data="$host_kernel_string$de_distro_string"
|
system_data="$host_kernel_string$de_distro_string"
|
||||||
system_data=$( create_print_line "System:" "$system_data" )
|
system_data=$( create_print_line "System:" "$system_data" )
|
||||||
else
|
else
|
||||||
|
|
8
inxi.1
8
inxi.1
|
@ -1,4 +1,4 @@
|
||||||
.TH INXI 1 "2014\-03\-13" inxi "inxi manual"
|
.TH INXI 1 "2014\-03\-14" inxi "inxi manual"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
inxi \- Command line system information script for console and IRC
|
inxi \- Command line system information script for console and IRC
|
||||||
|
|
||||||
|
@ -85,7 +85,7 @@ Setting specific color type removes the global color selection.
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
.B \-C
|
.B \-C
|
||||||
Show full CPU output, including per CPU clockspeed if available.
|
Show full CPU output, including per CPU clockspeed if available. See \fB\-x\fR for more options.
|
||||||
.TP
|
.TP
|
||||||
.B \-d
|
.B \-d
|
||||||
Shows optical drive data. Same as \fB\-Dd\fR. With \fB\-x\fR, adds features line to output.
|
Shows optical drive data. Same as \fB\-Dd\fR. With \fB\-x\fR, adds features line to output.
|
||||||
|
@ -110,7 +110,7 @@ Show Graphic card information. Card(s), Display Server (vendor and version numbe
|
||||||
may be added once enough data has been collected.
|
may be added once enough data has been collected.
|
||||||
.TP
|
.TP
|
||||||
.B \-h
|
.B \-h
|
||||||
The help menu. Features dynamic sizing to fit into terminal window. Set script global \fBLINE_MAX_BASIC\fR
|
The help menu. Features dynamic sizing to fit into terminal window. Set script global \fBCOLS_MAX_CONSOLE\fR
|
||||||
if you want a different default value.
|
if you want a different default value.
|
||||||
.TP
|
.TP
|
||||||
.B \-\-help
|
.B \-\-help
|
||||||
|
@ -296,7 +296,7 @@ The following shows which lines / items get extra information with each extra da
|
||||||
\- Shows PCI Bus ID/Usb ID number of each Audio device.
|
\- Shows PCI Bus ID/Usb ID number of each Audio device.
|
||||||
.TP
|
.TP
|
||||||
.B \-x \-C
|
.B \-x \-C
|
||||||
\- bogomips on CPU (if available).
|
\- bogomips on CPU (if available); CPU Flags (short list).
|
||||||
.TP
|
.TP
|
||||||
.B \-x \-d
|
.B \-x \-d
|
||||||
\- Adds items to features line of optical drive; adds rev version to optical drive.
|
\- Adds items to features line of optical drive; adds rev version to optical drive.
|
||||||
|
|
|
@ -1,3 +1,39 @@
|
||||||
|
=====================================================================================
|
||||||
|
Version: 2.1.1
|
||||||
|
Patch Version: 00
|
||||||
|
Script Date: 2014-03-14
|
||||||
|
-----------------------------------
|
||||||
|
Changes:
|
||||||
|
-----------------------------------
|
||||||
|
New Version, new man. This continues the dyanamic line sizing, I'm doing these one at a
|
||||||
|
time to make it easier to test stuff one by one.
|
||||||
|
|
||||||
|
Full refactoring/reordering of top global variables, moved user/maintainer set variables
|
||||||
|
to top, and clearly identify all globals.
|
||||||
|
|
||||||
|
Changed LINE_MAX to COL_MAX but all user configuration files will stay working since
|
||||||
|
inxi now will check for that and translate them to the new variable names.
|
||||||
|
|
||||||
|
New lines fixed, -C cpu and -f cpu plus full flags. Flags output is now fully dynamic to
|
||||||
|
display screen in terminal/console. Moved cpu short flags to -x because it's not that
|
||||||
|
important in general and just clutters things up in my opinion.
|
||||||
|
|
||||||
|
Print flags/bogomips on separate line if line greater than display width.
|
||||||
|
|
||||||
|
The rest of the lines will get a similar treatment, but it takes a bit of trial and error
|
||||||
|
for each line to get it working right.
|
||||||
|
|
||||||
|
Note that IRC line lengths are NOT dyanamic unless I can find a way to determine the column
|
||||||
|
width of irc clients, but that won't be accurate since fonts vary in widths for each character.
|
||||||
|
|
||||||
|
CPU was the worst offender in my opinion in terms of regular output wrapping to new line messily,
|
||||||
|
next will be the things with ports/chip id/card id.
|
||||||
|
|
||||||
|
Tightened up a bit more the dyanamic help / version output handler.
|
||||||
|
|
||||||
|
-----------------------------------
|
||||||
|
-- Harald Hope - Fri, 14 Mar 2014 13:14:51 -0700
|
||||||
|
|
||||||
=====================================================================================
|
=====================================================================================
|
||||||
Version: 2.1.0
|
Version: 2.1.0
|
||||||
Patch Version: 00
|
Patch Version: 00
|
||||||
|
|
Loading…
Reference in a new issue