#!/usr/bin/env bash ######################################################################## SELF_NAME='inxi' # don't quote the following, parsers grab these too SELF_VERSION=2.3.31 SELF_DATE=2017-07-30 SELF_PATCH=00 ######################################################################## #### SPECIAL THANKS ######################################################################## #### Special thanks to all those in #lsc and #smxi for their tireless #### dedication helping test inxi modules. ######################################################################## #### ABOUT INXI ######################################################################## #### inxi is a fork of infobash 3.02, the original bash sys info tool by locsmif #### As time permits functionality improvements and recoding will occur. #### #### inxi, the universal, portable, system information tool for irc. #### Tested with Irssi, Xchat, Konversation, BitchX, KSirc, ircII, #### Gaim/Pidgin, Weechat, KVIrc and Kopete. #### Original infobash author and copyright holder: #### Copyright (C) 2005-2007 Michiel de Boer a.k.a. locsmif #### inxi version: Copyright (C) 2008-2017 Harald Hope #### Additional features (C) Scott Rogers - kde, cpu info #### Further fixes (listed as known): Horst Tritremmel #### Steven Barrett (aka: damentz) - usb audio patch; swap percent used patch #### Jarett.Stevens - dmidecde -M patch for older systems with the /sys #### #### Current script home page/wiki/git: https://github.com/smxi/inxi #### Documentation/wiki pages will move to http://smxi.org soon. #### Script forums: http://techpatterns.com/forums/forum-33.html #### IRC support: irc.oftc.net channel #smxi #### Version control: #### * https://github.com/smxi/inxi #### * git: git pull https://github.com/smxi/inxi master #### * source checkout url: https://github.com/smxi/inxi #### #### This program is free software; you can redistribute it and/or modify #### it under the terms of the GNU General Public License as published by #### the Free Software Foundation; either version 3 of the License, or #### (at your option) any later version. #### #### This program is distributed in the hope that it will be useful, #### but WITHOUT ANY WARRANTY; without even the implied warranty of #### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #### GNU General Public License for more details. #### #### You should have received a copy of the GNU General Public License #### along with this program. If not, see . #### #### If you don't understand what Free Software is, please read (or reread) #### this page: http://www.gnu.org/philosophy/free-sw.html ######################################################################## #### #### PACKAGE NAME NOTES #### * Package names in (...) are the Debian Squeeze package name. Check your #### distro for proper package name by doing this: which #### then find what package owns that application file. Or run --recommends #### which shows package names for Debian/Ubuntu, Arch, and Fedora/Redhat/Suse #### #### DEPENDENCIES #### * bash >=3.0 (bash); df, readlink, stty, tr, uname, wc (coreutils); #### gawk (gawk); grep (grep); lspci (pciutils); #### ps, find (findutils) #### * Also the proc filesystem should be present and mounted for Linux #### * Some features, like -M and -d will not work, or will work incompletely, #### if /sys is missing #### #### Apparently unpatched bash 3.0 has arrays broken; bug reports: #### http://ftp.gnu.org/gnu/bash/bash-3.0-patches/bash30-008 #### http://lists.gnu.org/archive/html/bug-bash/2004-08/msg00144.html #### Bash 3.1 for proper array use #### #### Arrays work in bash 2.05b, but "grep -Em" does not #### #### RECOMMENDS (Needed to run certain features, listed by option) #### -A - for output of usb audio information: lsusb (usbutils) #### -Ax -Nx - for audio/network module version: modinfo (module-init-tools) #### -Dx - for hdd temp output (root only default): hddtemp (hddtemp) #### For user level hdd temp output: sudo (sudo) #### Note: requires user action for this feature to run as user (edit /etc/sudoers file) #### -G - full graphics output requires: glxinfo (mesa-utils); xdpyinfo (X11-utils); #### xrandr (x11-xserver-utils) #### -i - IP information, local/wan - ip (iproute) legacy, not used if ip present: ifconfig (net-tools) #### -I - uptime (procps, check Debian if changed) #### -Ix - view current runlevel while not in X window system (or with -x): runlevel (sysvinit) #### -m - all systems, dmidecode, unless someone can find a better way. #### -M - for older systems whose kernel does not have /sys data for machine, dmidecode (dmidecode) #### -o - for unmounted file system information in unmounted drives (root only default): file (file) #### Note: requires user action for this feature to run as user (edit /etc/sudoers file) #### For user level unmounted file system type output: sudo (sudo) #### -s For any sensors output, fan, temp, etc: sensors (lm-sensors) #### Note: requires setup of lm-sensors (sensors-detect and adding modules/modprobe/reboot, #### and ideally, pwmconfig) prior to full output being available. #### -S For desktop environment, user must be in X and have xprop installed (in X11-utils) ######################################################################## #### BSD Adjustments #### * sed -i '' form supported by using SED_I="-i ''". #### * Note: New BSD sed supports using -r instead of -E for compatibility with gnu sed #### However, older, like FreeBSD 7.x, does not have -r so using SED_RX='-E' for this. #### * Gnu grep options can be used if the function component is only run in linux #### These are the options that bsd grep does not support that inxi uses: -m -o #### so make sure if you use those to have them in gnu/linux only sections. #### It appears that freebsd uses gnu grep but openbsd uses bsd grep, however. #### * BSD ps does not support --without-headers option, and also does not support --sort