View Source ExAequo.SimpleClaParser (ExAequo v0.6.3)

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!" }}

Summary

Functions