Current section

Files

Jump to
credo lib credo execution task validate_options.ex
Raw

lib/credo/execution/task/validate_options.ex

defmodule Credo.Execution.Task.ValidateOptions do
@moduledoc false
use Credo.Execution.Task
alias Credo.CLI.Options
alias Credo.CLI.Output.UI
@exit_status Credo.CLI.ExitStatus.config_loaded_but_invalid()
def call(exec, _opts) do
case exec.cli_options do
%Options{unknown_args: [], unknown_switches: []} ->
exec
_ ->
Execution.halt(exec)
end
end
@spec error(Credo.Execution.t(), keyword()) :: no_return
def error(exec, _opts) do
UI.use_colors(exec)
Enum.each(exec.cli_options.unknown_args, &print_argument(exec, &1))
Enum.each(exec.cli_options.unknown_switches, &print_switch(exec, &1))
put_exit_status(exec, @exit_status)
end
defp print_argument(exec, name) do
UI.warn([
:red,
"** (credo) Unknown argument for `#{exec.cli_options.command}` command: #{name}"
])
end
defp print_switch(exec, {name, _value}), do: print_switch(exec, name)
defp print_switch(exec, name) do
UI.warn([:red, "** (credo) Unknown switch for `#{exec.cli_options.command}` command: #{name}"])
end
end