this solves the problem exposed when there is no ipv6 output, and thus the last line used to test for end of record was vanished.
now it's all just treated like ifconfig except a few small differences of which item to slice out.
A case where pcibusid includes the pre- 0000: appeared, that broke the -N pcibus id handling for -n, which made for no output.
Now inxi will just slice off that in the initial lspci creator.
several bug fixes, one quite serious (not caused by inxi, lsusb -v takes 1 minute to run in some releases).
The lsusb bug is very bad, and hopefully someone will report that upstream, at Arch and Debian Sid it's seen.
lsusb -v hangs very badly.
Another bug fix with error output for some unknown reason on using cat on some /sys files for networking.
Layout bug fixes as well.
Package maintainers, this one is a real bug squasher release, thanks.
This required recoding that function, so I also made -i show IPv6 with -x as well. Might as well start getting used to it.
Also fixed and added wrapping for the -i output, that wasn't working right before, now is standardized to other lines.
got rid of that horrible banlist array/function thing, now it's hard coded.
On a dual core system, this saves literally 0.1 seconds on execution, about 10-20% of execution time.
this also fixes a bug that has always existed, which is if you use spaces to replace instead of ''.
Another advantage of this new method it fixes the fact that each and every string character would be considered a match, null replaced with null.
This was due to the fact that each banlist string started with |, ie, it contained a null character in the search pattern... sigh.
This is why we don't use stupid bash tricks, ok people? They hide bugs, and make the code write only.
New internal line character counter implemented, with support for user set line lengths for both irc and console.
More line wrapping added, and some fine tuned. Also wraps -A now, and adds alsa information to end of first line as well if > 1 card and less than line length max
fixed a bug with remote mounted partitions, created line length counter function that cleans off color code characters to allow for accurate
line counts for line breaks.
Removed legacy print code, repeated code blocks for single/multiple cards, for audio/network.
Made also always print out whether or not a card is present, since you can have alsa without having a card.
This actually shortened inxi for once, and simplified some legacy methods that were totally unnecessary and just complicated the print functions, now all print
functions use the same for loop print out methods on arrays.
Optimized graphics driver function massively, knocked off about 60% of execution time by switching to a single read through via
gawk..
In terms of dual core system, that saved literally about 1 second execution total time.
new option: --recommends
This lets users check their system for all the required/recommended apps, and also shows any missing core directories,
with an explanation of what each item does.
Also prints out a list of distro packages that should help users install the missing package.
So far only debian/ubuntu and arch linux lists are done.
Adjusted the 2-5 options to include the various new features that have been added recently.
Got rid of the entire old way of using verbosity level numbers internally in the script to trigger events, now all those printout
triggers are done via clearly named global switch variables which are set in the initial Option selector function only.
This should not make any particular difference to users, but it makes it easier to read the printout logic code, and to see what
full/basic/verbosity level output actually is going to do.
Also changed -d to -b, and added an error handler to -d showing it's been deprecated.
-d will be needed in the future for advanced -D data, probably cd/dvd etc, and I want to keep the consistency, as much as possible,
that is, m will be advanced M data, p is advanced P, n is advanced N, and so on.
I know this breaks some people's habits, but I think with the deprecated option warning/error, it should be fine, and it's
best to get this done now than to wait until inxi actually is going to use the -d advanced disk option.
Ok, that's it, just basically a code clean up version.
Also if > 0, will show added to display version, like: 1.6.3-4
I've found that google svn from googlecode isn't propagating the data across its data centers quickly or consistently
which makes testing and debugging a real pain in the butt when dealing with people in different geographical areas.
Now we'll be able to confirm that you have dev version xx, ie, the latest uploaded, without doing pointless primary
version number bumps.
When patch number is 00, no display occurs, but it still shows on updating via -U
New feature: -m, with -xx as optional extra extra data
-m shows system, mobo, bios, and with -xx, chassis, if present.
Will also try to guess at if it's a laptop.
Added debugger option, data collector -@ 14, all data.
Fixed long time logging bug, arrays were't writing out in quotes, have to extract out of quotes then send to logger.
Added 802.11 to usb nic/wifi card detection strings.
Updated help menu more to be more readable, and corrected some errors there too.
Improved loaded/unloaded/failed output for gfx driver, now lists them by categor, ie: loaded: ati,radeon unloaded: fbdev
This is because of the high count of loaded/unloaded drivers some systems show, especially for radeon/ati card types.
Added logging for inxi in debugger data collector, and include now the log file, that should be of use.
Added to and improved debugging data collector. Options: -@ 11 -sys/networking; 12 - xorg; 13 - disk/partions. All also collect
/proc data and some other stuff it's good to have examples of for future use.
Added dwm and wmii desktops as well.
Added support for standard --verbose and --help options.
Added irc exit if help menu is called for to avoid bad spamming.
Tweaked line count on System, made a touch shorter
Now also for greater than 1 video card, prints one per line and puts xorg data line separate always.
For 1 card or less, if line is short enough, puts it all one line. System line wraps if too long at desktop, which also
shows console and tty number if out of X
-Z - absolute override, turns off all filtering. This is useful if you are helping someone on irc for example and need to see this
data.
Fixed a long term bug in the regex that filtered out home name from mount paths in partitions, was greedy, now it just filters out
only the name and prints the rest of the full path, as it should.
Added twm to desktop support list, that has no --version output so that won't show.
New: split debugging data collector, now there is -@ 11 for /sys reads, and -@ 12, for xorg data output, including xprop -root,
glxinfo, xdpyinfo, x version info, and related xorg files, including log data.
New debugging feature: -@ 11
this triggers a download/run of xiin, which reads and writes to file contents of /sys, and also writes to file
lsusb, lspci, lspci -vv, and the last 200 lines of /var/log/Xorg.0.log which can be helpful for debugging various
gfx driver issues. Might make the last one optional or from another option, we'll see.
Also removed for detected wifi cards the speed and duplex modes, since they are not applicable for wifi
This will not always work, it detects string wireless, wifi, wi-fi, wlan and if found, doesn't make those lines.
Better than meaningless N/A output I'd say.
Debugger should make it easier, places data in a directory in $HOME./inxi/ and tells user where to find it.
This solves the problem of unreadable output for some irc viewers
Also added output to color picker to show what selection was.
Note: I changed some of the colors so the old selections won't be the same, so please update version package maintainers
config file colors for: terminal in x, console out of x, gui irc, irc terminal in x, irc console out of x
other tweaks too, simplified short inxi output, no more brackets, just a ~ or space as separator.
New color schemes, about 30 total now, those will be modified over time to be the best set of colors
for most users with most background types.
Other cleanups, closer to 1.5.x release now.
Moved the output error messaging to the print gfx function where it should be.
I'll do that whereever the error messages were put in the get data functions, it' better to return null
and let the print function decide what message to give users, that way we can always test for null values
on anything we get from get data functions.
I'll fix these as I spot them.
Normally we won't fix such things, which are just bugs in the distro, but in this case,
since there's now an overall failsafe, that can be used for all future distros that might
make the same mistake.
But please, tighten up your standards distro, this is a small file, and it's not hard to fill
it out right, is it? Or is it?
Bug fix, added in globals B_DCOP / B_QDBUS for pretests of dcop/qdbus. Need to set both because some systems have both.
Bug fix, added squashfs and unionfs to excluded fs types to clean up -p output for partition data
a small issue fix, where cpu spike caused by inxi itself gives a bad cpu speed. Solution, put a 0.3 sleep time right before we get the cpu
data.
Less than 0.3 wasn't s reliable, not sure how much time the kernel needs to slow down cpus again.
user can set config override of this time easily.
Maybe one day inxi will be released with config files in /etc, then this stuff can be documented better in the file.
I found the sleep largely unnoticeable in my tests.
New option: -t
requires extra args c, m, or cm (cpu, memory, or both). Accepts further additional option: 1-20
This will show top cpu processes for default number or user selection, and top memory using processes.
Sample: inxi -t c7
updated to handle new /sys/block syntax to get device name for disks. This will require further work to actually make solid, but this fix
makes
it work for now.
Found another issue, for snd modules, we have to use array item 3, kernel modules loaded, not driver
driver for sound modules is a name, not a module name, and also the reported modules need further processing, - to _ and tolower in case.
fixed a bug that made two networking chips of same company when identical create one single doubled driver output.
Also added in pcibus id output for -x option with networking and audio cards.
Optimized to not do repeated tests of tools for functions that are used more than one time.
Added boolean tested flags, and global app path variables to handle this.
this can knock off up to 10 or more type -p app exists type tests for one script execution.
Found and fixed 2 real bugs:
1 - driver module version print out was broken for both networking and audio, and audio was not at all working due to improperly formatted
module names being sent to get module driver version function.
2 - runlevel show was broken, was using a bad path. Fixed, and also made runlevels show now for -F/-xI output
Updated top comment header to correctly show true script Depends and true Recommends. Recommends section now also lists which options require
which applications, and I updated/corrected the debian package names for each application.
Redid the recommended app testing also, now the app is only tested for locally in the get data function when it is requested.
Cleaned up some other irregular code methods.
Might be one more fix to get it more consistent.
Added in support for unmounted lvm type syntax in unmounted partitions function, /dev/dm-1, I forgot about that possibiliity.
Fixed/patched hfs detection based on a file -s sample data chunk. Added hfsj, which I assume is hfs+, who knows for sure.
found a bug, inxi is using gawk before the depends check, this creates bad output in ubuntu/mint unless it has gawk.
Fixed by moving tests to after dependency checks.
Added nvidia only gpu temp output for multiple gpus. If > 1 gpu screen is detected, it will output the gpu temp data for each
discovered screen.
For 1 gpu with nvidia, it will show screen nu if you use the -x option, or with -F
This is an nvidia proprietary driver feature only.
yum made more robust, added /etc/yum.conf support, added support for older syntaxes in redhat, added missing data support.
And that's it I hope for yum.
adding in a spacer in :// to turn off auto show page title in irc clients. For terminal, will not add space.
This fixes an irc client bot showing title of web pages of any url, like amybot
by request, added option to output contents of sources file(s).
Reads all sources (currently only for apt systems like debian/ubuntu and derived), then prints out file name, and the file active repos.
Does not print out inactive, commented out, or blank lines.
fixed very obscure gensub/gawk bug that makes integers into strings if 501-1000 when number is generated by gensub. This bug makes the
number typed as string, which makes > tests always true.
Also fixed output bug where there is nothing in main fan data, but there is something in default fan data array.
Added back in -s show sensors always to avoid confusion, but turns off if error message for -F output. This is to avoid spam yet still
have it work always as expected.
By suggestion, now show no sensors output if error condition: missing sensors app OR no sensors output
This can be overridden for debugging by override with -! 1 flag, testing 1
If older, sudo will just error out, which is fine for now, it always works as root though. Eventually all systems will support this, so
there's no real need to test for version numbers of sudo I think.
small new feature: show with -x, extra options, hddtemp data for -D data, if hddtemp installed, and if user root, or if user is in
/etc/sudoers with: <username> ALL = NOPASSWD: /usr/sbin/hddtemp
Another nice little sys admin thing.
More fine tuning of sensors. Handled case where temp 1 or 2 is greater than temp 2 or 1, but fan speed is zero for the hotter case, and is
> 0 for the cooler case. This means that the cpu fan will be the cooler temp.
Added an attempt to set mobo fan speed if fanx is > 5000k rpm, those little fans will always be fast and on mobo, or almost always.
Redid the logic for sensors to be totally dynamic and regex driven, no more hacks.
This should drastically help with fringe case data handling, and solved all the posted data samples of sensors output
New feature: -s option triggers sensors output, also -F adds it.
Shows all that can be gathered, cpu/mobo temp, cpu/mobo/psu fan speed, sys fan speeds.
Also cleaned up some non clear code in inxi.
Fixed long standing bug with root user getting null output for res or tty, now if in X, shows message that gfx data is not available
to root.
Also added null case handling for some of the gfx output to show N/A instead of null. This lets me know which detection fails, which
should make debugging a bit easier long term.
Turned off the advanced glx info line as well for root user.
quassel support added, 3 cases, for quassel, quasselclient, and quassel monolithic (unused now))
Also expanded all the gawk in that section to make it more consistent.
naming, Some_Variable, for when the variable will be inherited by child functions, that way you know that the variable is going to be
passed down, or has been inherited.
And with those fine tuning changes, time for inxi to go to version 1.0.0
Added new function and options, -l -u which trigger partition label and uuid output.
Either -u or -l will also automatically trigger the short -P partition flag.
To use with full partition output, use: -pul or -pu or -pl
This is one of the last major features I wanted to add, and it's because I'm sick of manually checking for uuid or label in /dev/disk..
Ok, have fun.
This fixes the multiple physical cpu missing data.
I had to simplify the ht/smp part to make it work, also, from what I can tell, we only really need the terms:
UP
SMP
HT
SMP-HT
which cover all possible scenarios from what I can tell
http://en.wikipedia.org/wiki/Symmetric_multiprocessing says that it's all basically smp, single cpu, dual core, or multi cpu, single or
multi core.
Fixed syntax of gawk, made it all consistent, one method for everything, hanging { now in gawk for all structures and flow controls
Fixed small double space thing for kernel output also.
Removed all one liners from gawk, like BEGIN { IGNORECASE = 1 }, and now use NO one liner flow controls at all. This is the new
convention, neither trash nor I were comfortable enough with gawk to really check the actual programming syntax, but now it's kind of
obvious that the same rules apply: all one liner flow controls hide logic, and give bugs somewhere to live. Same as any other language.
What a surprise.
Fixed debugger for real this time, now it actually works as intended. The infobash debugger never worked at all, unless
you explicitly turned it on with debugging flag. Now it does.
Pre script up errors will be stored in the error array, and printed out if found automatically no matter what the
debugging flag is set to.
This is a perfect example of why using highly compressed code with no explicit variable declarations is ALWAYS a bad
idea.
Also fixed small line length bug where if color scheme 0, no colors is used, the lines would be too long, since the byte
count is then less than for irc or shell colors.
New option -p, outputs all discovered partition information along with the -P stuff.
-P was improved to also show /tmp and /usr by default.
-p will not show with -F to avoid flooding issues.
This is another milestone, hit much sooner than we thought. We have now restored the broken konversation native script
support.
This will be of special interest to distros who want to include inxi as native, or to packagers.
Basically, all that is needed is to set this symbolic link:
ln -s <inxi location, ie: /usr/bin/inxi, or /usr/local/bin/inxi> /var/share/apps/konversation/scripts/inxi
in the package post install script.
This will automatically enable native, ie: /inxi support in konversation.
Fixed a few other small bugs, and cleaned up code and comments as well.
We were almost going to call this release 1.0.0, but we'll leave that until it's absolutely certain that everything is
debugged and working.
Note, this is not often available data, so it will only show if you have it.
This requires modinfo showing ^version: data, which only sometimes is there.
This fixes weak spots, bugs, and adds new features.
1. Fixed single core output for -C option, now correctly puts speed on same line
2. Fixed bug with some possible values for network card that makes line color trigger blue: Added space between values.
3. Fixed bug that makes livecds with aufs file system show all partition information
4. Removed -F output of -f to avoid pointless irc spam
5. New option, -i - triggers when used alone -N, networking line, plus Wan IP address of system, and if ifconfig is
installed, prints out all interfaces+ip addresses
6. Updated -h menu to reflect these changes.
7. Added 'driver' output for network cards, and fixed driver output for audio cards, so now only uses asound/cards data
if single card detected.
8. Moved 'ports' data to -x option, the geek only output that is.
This is the next major version release, 0.6.x
Got a good rough working alsa driver going. This only works for one card, dual or more cards will simply
not show the driver field, but everyone with just one card will be able to see their running driver.
This is an ok compromise for now, but it wasn't super elegant.
This is as close as I can get to getting the alsa driver to show, but it only works if
lspci for audio comes up blank, that way we can use /proc/asound/cards for all the data
and extract the card and driver from that into an array.
But I can't see any way to match the full output of lspci if present with the card data
from /proc/asound/cards, because sometimes there is nothing in common between the two.
Maybe someone else can solve this one...
Fixed extra data issue on alsa output, now etch on old laptop is also showing sound card by the way.
Removing (...date build...) string from alsa output if present, and removing trailing dot.
Added new distro maintainer flag: B_ALLOW_UPDATE='true' as default. If set to false, it will shut off
the inxi script updating feature, and also turn off the display in -h of the -U option.
This seems a lot easier than having to remove code each release, which would get fairly tiresome.
Refactored script self updater error handling, removed duplicates and created single test cases.
Ok, enough is enough... heh, signing off now... enjoy, thanks to Cathbard for his patience, and
and all the other people supporting this with their time.
More future proofing, updated -! conditions to use more reasonable numbers:
1,2,3 -! are now setting testing booleans
10,11,12,http://.... now set alt downloads
Changed B_TESTING_FLAG to B_TESTING_1 to cover future cases where we run multiple testing option
flags. These last changes are all for future development, none are related to currently active stuff.