[Mono-list] C# command line parsing library

Rafael Teixeira rafael.teixeirabr at terra.com.br
Mon Jan 8 09:38:46 EST 2007

Well, Mono.GetOptions is actively maintained, by me, who created it.

Aside from the subcommands pattern (like you have for instance in
cvs/svn client utilities) that I still could not implement, I think it
solves well the problem it was created to solve, which was to make
parsing command line options easier, while maintaining consistency with
the *nix way in the user facet of it and automatically generating a good
--help listing (one of the most tedious and error prone tasks while
coding/maintaining the parsing bits).

I don't think it has too much limitations, but I would like some bug
reports for any limitations or lacking features that all of you, users
and potential users of it, could file to assess what I should improve.
Direct code/documentation contributions are also welcome.

Maybe some of the few constraints I added to make applications using it
behave consistently like most of the command line utilities I use
everyday in Linux, are too strict to Miguel's taste, but I would rather
like to hear constructive criticism and make Mono.GetOptions better than
to have it generically cast as "unmaintained and with too many

I can be blamed of not documenting properly to show all the things it
can do (some people couldn't figure out how to turn off some of my
default restrictions), but in truth Mono.GetOptions is quite flexible.

I think Miguel would love that I could get back to my first days in
Mono, when he reputed me as "fast hacker", but chronic depression has
taken me into a path where I can't focus on things more than a few ours
before getting distracted with all kinds of self-centered negative

So you all will need to be a bit more insistent with me, but believe me:
I still can code, I still can find ingenious solutions to problems, and
I still can learn.

Sorry Miguel, I really like you in so many aspects that I think of you
as a friend and not just as a colleague on the code trenches of open
source/free software, but I feel like you are disappointed with me, and
that may be clouding your vision on the prospects of my small

Or maybe I am the one that is hoping too much on those few lines of
code, while perhaps not doing my part as best as I could to improve them
and their usefulness.

I'm in no position to judge which is closer to truth, and I don't want
to be in that position, I just hope that Mono.GetOptions, and other
contributions I still plan to do to open source, can be useful to many
developers/users and I will do my best for it to happen.
Rounding it, please evaluate Mono.GetOptions (users and potential users)
and tell me what would make it more useful. I surely won't turn it into
a "Swiss army knife" of sorts, but anything that can make it a better
mainly-declarative tool to the option parsing problem will be discussed
and hopefully implemented. 

Have Fun,

On Thu, 2007-01-04 at 12:20 -0500, Miguel de Icaza wrote:
> Hello,
> > I think the most standard way to do this is the library 
> > "Mono.GetOptions" (search in google).
> I actually would not encourage people to use Mono.GetOptions, as it is
> not actively maintained and has too many limitations.
> Rolling out your own command line parser is not that hard anyways, and
> gives you precise control over the interface you give to your users.
> _______________________________________________

Rafael Teixeira <rafael.teixeirabr at terra.com.br>

More information about the Mono-list mailing list