igniter/lib/args.ex

38 lines
1 KiB
Elixir

defmodule Igniter.Args do
@moduledoc "Tools for validating and parsing command line arguments to tasks."
def validate_nth_present_and_underscored(igniter, argv, n, option, message) do
value = Enum.at(argv, n)
cond do
!value ->
{:error, Igniter.add_issue(igniter, message)}
not (Macro.underscore(value) == value) ->
{:error,
Igniter.add_issue(
igniter,
"Must provide the #{option} in snake_case. Did you mean `#{Macro.underscore(value)}`"
)}
true ->
{:ok, value}
end
end
def validate_present_and_underscored(igniter, opts, option, message) do
cond do
!opts[option] ->
{:error, Igniter.add_issue(igniter, message)}
not (Macro.underscore(opts[option]) == opts[option]) ->
{:error,
Igniter.add_issue(
igniter,
"Must provide the #{option} in snake_case. Did you mean `#{Macro.underscore(opts[:option])}`"
)}
true ->
{:ok, opts[option]}
end
end
end