Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 346665 - app-portage/eix - `eix' spits out everything instead of usage()
Summary: app-portage/eix - `eix' spits out everything instead of usage()
Status: RESOLVED WONTFIX
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: High enhancement (vote)
Assignee: Martin Väth
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-11-24 16:04 UTC by Jeroen Roovers (RETIRED)
Modified: 2010-11-27 10:11 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jeroen Roovers (RETIRED) gentoo-dev 2010-11-24 16:04:09 UTC
$ eix | wc -l
73818
$ eix -a | wc -l
73818
$ eix -c | wc -l
14243

I don't think flooding a tty with unwanted output should be the default. Why not having it spit out usage() instead, and then have a new option, say -E --everything, to do what it now does by default. Note that even doing something silly like, for example, `eix -a' without an argument to that option, defaults to the behaviour of `eix', so that the tty gets flooded with unrelated output, instead of an error message about the required argument.

Alternatively, you could change the description (as in eix(1)) from 

NAME   
       eix  -  a set of utilities for searching, diffing and updating a binary
       cache of your local portage-trees

to

NAME   
       eix  -  prints out the full descriptions of all packages in your local
       portage-trees. It also a set of utilities for searching, diffing and
       updating a binary cache of your local portage-trees.
Comment 1 Martin Väth 2010-11-24 23:40:56 UTC
The empty test should match everything and not spit out an unmotivated
error or help-test.
Introducing strange case distinctions (different behavior without arguments)
and thus forcing users to change their scripts to some broken logic only
to satisfy a first-time user who hacks in "eix" without any idea what
this might be doing makes no sense and is completely against unix philosophy.
eix usage is already complicated enough, it does not need even more
case distinctions.

> eix - prints out the full descriptions of all packages in your local
> portage-trees.

This would be silly, since this is not the main purpose of the tool.
It just happens by the logic of its syntax that this is the action taken
if you specify no argument.
With the same argument you could also require that the man-page of "find"
be changed, because it spits out all files if you specify no argument
(because its default directory is ".", no test means a successful
test, and the default action is -print):

: find - list all files recursively. And BTW, it can also find them...

:)
Comment 2 Jeroen Roovers (RETIRED) gentoo-dev 2010-11-25 13:14:47 UTC
You're a complete idiot. There. Someone needed to tell you.
Comment 3 Jeroen Roovers (RETIRED) gentoo-dev 2010-11-25 13:17:50 UTC
You could at least close the damn bug with the right reason.
Comment 4 Martin Väth 2010-11-27 10:11:58 UTC
It is always surprising how upset people can get on technical topics.
I hope that you have calmed down meanwhile.

In case my explanation was not clear enough: I was much more verbose
in bug 346765. I hope with this explanation it becomes clear that e.g.
by "broken logic" I really meant "breakage of consistency of the logic
of argument interpretation" (perhaps there was a misunderstanding that
something from your post could be meant - this was not the case).

I hope also that with the explanation it becomes clearer why I consider
this bug as "not a bug" (which in bugzilla means "invalid";
however, I will not start a fight about nothing). In fact:

1. eix behaves as intended and documented in the given cases.
2. The main purpose of eix is *not* to output all descriptions.

Anyway, I changed the manpage (even in a prominent place when describing the
eix command) to point out that eix will spit out everything if no restriction
is specified by an expression.