/cmd-args

Git/Perforce/SVN style command line argument parser

Primary LanguageHaskell

Git/Perforce style command line parser
======================================

*** NOTE *** This parser has been more of a Haskell practice for me
    than making something universally useful.  If you need a
    multi-mode command line parser with nice syntax & ease of use, I'd
    recommend studying the following:

    http://community.haskell.org/~ndm/cmdargs/

 * * *

The goal is to parse command line parameters for programs that have
the following command line syntax:

<app> <global-args,...> <command>  <command specific args> <files...>

An example of an app that uses such a syntax is git:

git --no-pager add --update file.c

The command line libraries I have seen for Haskell and other languages
tend not to support this nicely.

Other design considerations
---------------------------

The below considerations are aimed to make the library and its usage
simple.

This library will NOT support single character switches.  Only GNU
style --long parameters are supported.

This library will not support any type of automatic help message
generation or printing.  The reasoning is that help messages are
rather easy to print with simple putStrLn's.  Requiring help strings
slows down quick prototyping and makes command line argument
declaration cumbersome.