View Source Nexus
_ __
|\ ||_\/| |(_
| \||_/\|_|__)
Create CLIs in a magic and declarative way!
An Elixir
library to write command line apps in a cleaner and elegant way!
Installation
Just add the nexus_cli
package to your mix.exs
def deps do
[
{:nexus_cli, "~> 0.5"}
]
end
Example
defmodule MyCLI do
@moduledoc "This will be used into as help"
use Nexus.CLI
defcommand :fizzbuzz do
description "Plays fizzbuzz - this will also be used as help"
value :integer, required: true
end
@impl Nexus.CLI
def handle_input(:fizzbuzz, %{value: value}) when is_integer(value) do
cond do
rem(value, 3) == 0 and rem(value, 5) == 0 -> IO.puts("fizzbuzz")
rem(value, 3) == 0 -> IO.puts("fizz")
rem(value, 5) == 0 -> IO.puts("buzz")
true -> IO.puts value
end
end
end
More different ways to use this library can be found on the examples folder Documentation on defining a CLI module can be found at the Nexus.CLI
Why "Nexus"
Nexus is a connection from two different worlds! This library connects the world of CLIs with the magic world of Elixir
!
Inspirations
Highly inspired in clap-rs