Current section
Files
Jump to
Current section
Files
lib/credo/execution/task/set_default_command.ex
defmodule Credo.Execution.Task.SetDefaultCommand do
@moduledoc false
@default_command_name "suggest"
@explain_command_name "explain"
use Credo.Execution.Task
alias Credo.CLI.Filename
alias Credo.CLI.Options
def call(exec, _opts) do
determine_command(exec, exec.cli_options)
end
defp determine_command(exec, %Options{command: nil, args: args} = options) do
potential_path = List.first(args)
if Filename.contains_line_no?(potential_path) do
set_command_and_path(exec, options, @explain_command_name, potential_path)
else
set_command_and_path(exec, options, @default_command_name, options.path)
end
end
defp determine_command(exec, _options), do: exec
defp set_command_and_path(exec, options, command, path) do
%Execution{
exec
| cli_options: %Options{
options
| command: command,
path: path
}
}
end
end