View Source ExAequo.SimpleClaParser (ExAequo v0.6.0)
A simple Command Line Argument Parser delivering syntactically but not semantically checked Commnad Line Arguments
Nothing in → Nothing out
iex(1)> parse([])
{:ok, %{args: [], kwds: %{}}}
Positionals only
iex(2)> parse(~W[alpha beta gamma])
{:ok, %{args: ~W[alpha beta gamma], kwds: %{}}}
Flags are indicated by a leading :
iex(3)> parse(~W[:verbose :help alpha beta gamma])
{:ok, %{args: ~W[alpha beta gamma], kwds: %{verbose: true, help: true}}}
Keywords needing values are defined à la json with a trailing :
iex(4)> parse(~W[level: 42 :h name: Elixir])
{:ok, %{args: ~W[], kwds: %{level: "42", h: true, name: "Elixir"}}}
A single :
just ends keyword parsing
iex(5)> parse(~W[level: 42 : :h name: Elixir])
{:ok, %{args: ~W[:h name: Elixir], kwds: %{level: "42"}}}
Beware of not giving values to keywords
iex(6)> parse(~W[level:])
{:error, %{args: [], kwds: %{}, error: "Missing value for keyword arg level!" }}
iex(7)> parse(~W[level: : high])
{:error, %{args: ~W[high], kwds: %{}, error: "Missing value for keyword arg level!" }}