Current section
Files
Jump to
Current section
Files
lib/optimus/usage.ex
defmodule Optimus.Usage do
def usage(optimus, subcommand_path \\ []) do
{subcommand, subcommand_name} = Optimus.fetch_subcommand(optimus, subcommand_path)
flag_info = format_usage(subcommand.flags)
option_info = format_usage(subcommand.options)
arg_info = format_arg_usage(subcommand)
usage_parts = [subcommand_name, flag_info, option_info, arg_info]
usage_parts
|> List.flatten
|> Enum.join(" ")
end
def help_usage(optimus) do
optimus.name <> " --help"
end
def version_usage(optimus) do
optimus.name <> " --version"
end
def subcomand_help_usage(optimus) do
optimus.name <> " help subcommand"
end
defp format_usage(formatables) do
formatables
|> Enum.map(&Optimus.Format.format_in_usage/1)
end
defp format_arg_usage(subcommand) do
arg_usage = format_usage(subcommand.args)
if subcommand.allow_unknown_args do
arg_usage ++ ["..."]
else
arg_usage
end
end
end