Packages

fnord

0.8.73

AI code archaeology

Current section

Files

Jump to
fnord lib cmd config utils.ex
Raw

lib/cmd/config/utils.ex

defmodule Cmd.Config.Utils do
@moduledoc false
@doc """
Resolve a required parameter out of either opts[key] or the first element of args.
Returns {:ok, value} if found, or {:error, message} if missing.
"""
@spec require_key(map(), [any()], atom(), String.t()) ::
{:ok, String.t()} | {:error, String.t()}
def require_key(opts, args, key, human_name) do
case opts[key] || List.first(args) do
nil ->
{:error,
"#{human_name} is required. Provide #{human_name} as positional argument or --#{key}."}
value when is_binary(value) ->
{:ok, value}
end
end
end