[Haskell-beginners] Unix-style command line arguments and file input?

Vale Cofer-Shabica vale.cofershabica at gmail.com
Tue May 5 21:22:12 UTC 2015


Wow! A big thank you to everyone who responded. I was able to get up
and running very rapidly with cmdArgs. The two resources that really
got me going were:
* http://spin.atomicobject.com/2012/12/13/using-haskells-cmdargs-package/
* https://zuttobenkyou.wordpress.com/2011/04/19/haskell-using-cmdargs-single-and-multi-mode/

I'm going to read through:
https://hackage.haskell.org/package/email-validator
for ideas now that I understand the basics.

eddie looks very interesting; I was longing for something similar recently.

Many thanks again,
vale


On Tue, May 5, 2015 at 2:12 PM, David McBride <toad3k at gmail.com> wrote:
> While I used to use cmdargs, at some point I switched to
> optparse-applicative and never strayed.  My only complain about it is that
> it uses strings everywhere instead of text.
>
> On Tue, May 5, 2015 at 1:43 PM, Vale Cofer-Shabica
> <vale.cofershabica at gmail.com> wrote:
>>
>> Hello all,
>>
>> Punchline first: What's the "best practice" way of doing unix-style
>> command line argument and file input processing in Haskell?
>>
>> Background:
>> I'm using Haskell to write programs that act like well-behaved,
>> pipe-friendly unix tools. i.e., the following are all equivalent:
>>
>> % ./prog file
>> % ./prog < file
>> % cat file | ./prog
>>
>> Thus far, I've done this by directly inspecting the first element of
>> System.Environment.getArgs, which has been fine thus far.
>>
>> I'd also like to be able to take simple command line arguments
>> (boolean flags and numeric parameters) and the above doesn't adapt
>> well to that case. I'd like to do this in the idiomatic, "standard"
>> way (a la getopt() in C). Browsing through the wiki page on command
>> line argument parsers [1] gave me a bewildering array of options. I'm
>> not really sure where to start, though I remember reading a blanket
>> endorsement of optparse-applicative somewhere.
>>
>> Any pointers or examples that address my use-case would be much
>> appreciated.
>>
>> -vale
>>
>> [1]: https://wiki.haskell.org/Command_line_option_parsers
>> _______________________________________________
>> Beginners mailing list
>> Beginners at haskell.org
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>
>
>
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>


More information about the Beginners mailing list