public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] Parsing emerge
@ 2005-03-04  8:29 Chris White
  2005-03-04 11:08 ` Ian Leitch
  2005-03-05  5:11 ` Chris White
  0 siblings, 2 replies; 9+ messages in thread
From: Chris White @ 2005-03-04  8:29 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 2533 bytes --]

I'm putting this here for informative purposes as to achieving proper
parsing of portage for use in extending the already present behaviour to
better suit one's needs.  A few things I'll bring into the table from my
experience:

1) NOCOLOR=true is a good idea.  It's rather hard to account for both
color and no color in regex parsing (unless someone has a spectacularly
fun regex for that...) and I find it easiest to parse.

2) stdout is home to all the portage output, !!! type stuff goes to
stderr.

3) Portage is actually fairly parseable if you try.  Lucky I also found
that the compile itself goes to stdout, giving you even more flexibility
for reporting type situations.

4) Parsing can, in some cases, help you add extra functionality to
portage without even having to hack the portage code.  I've already
worked on a system that can buffer 20 lines or so backlog, catch an
error in the compile, and give you the next few lines.  By doing this,
it  makes it easier to give bug reports by narrowing down what's failing
in a compile, expecially if you're getting spewed 100 compile messages
and your backlog can't keep up.  I've already talked with ferringb
regarding that and have looked at some added functionality to make such
a system more realiable.

I wrote a small perl script to exemplify what I'm trying to go at:

http://dev.gentoo.org/~chriswhite/emerge_parse.pl

In order to install this, you'll need to `g-cpan.pl Expect` in order to
get the Expect module (which interestingly enough also installs the dep
of IO::Tty).

I'm hoping that this information will be somewhat helpful to people here
in realizing the full potentional of parsing.  Basically, you run the
script with -pv arguments (for now.. more to come) like so:

`emerge_parse.pl -pv xine-lib`

and you'll get a nice translation of the emerge -pv layout:

root@secures chris # emerge_parse.pl -pv xine-lib
[Pretend] emerge would do a(n) re-install of
media-libs/xine-lib-1_rc8-r1

root@secures chris # emerge_parse.pl -pv java-sdk-docs
[Pretend] emerge would do a(n) fetchonly re-install of
dev-java/java-sdk-docs-1.4.2

root@secures dev-util # emerge_parse.pl -pv flawfinder
[Pretend] emerge would do a(n) new install of dev-util/flawfinder-1.24

.. etc.. etc..

As you can see, extra functionality has been added, and now you get the
translation of emerge's abbreviated install method format to something
more human readable.  I'll hope to have more to come with regards to
emerge parsing.

[-- Attachment #2: このメッセージにはデジタル署名された部分があります --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2005-03-06 23:00 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-03-04  8:29 [gentoo-dev] Parsing emerge Chris White
2005-03-04 11:08 ` Ian Leitch
2005-03-04 15:05   ` Chris White
2005-03-04 15:05     ` Chris White
2005-03-04 16:19     ` Chris Gianelloni
2005-03-04 17:52     ` Ian Leitch
2005-03-05  3:03   ` Jason Stubbs
2005-03-05  5:11 ` Chris White
2005-03-06 22:49   ` Aron Griffis

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox