Git/Perforce/SVN style command line argument parser
Haskell Shell
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


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:

 * * *

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

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.