set_default_command.ex (927B)
1 defmodule Credo.Execution.Task.SetDefaultCommand do 2 @moduledoc false 3 4 @default_command_name "suggest" 5 @explain_command_name "explain" 6 7 use Credo.Execution.Task 8 9 alias Credo.CLI.Filename 10 alias Credo.CLI.Options 11 12 def call(exec, _opts) do 13 determine_command(exec, exec.cli_options) 14 end 15 16 defp determine_command(exec, %Options{command: nil, args: args} = options) do 17 potential_path = List.first(args) 18 19 if Filename.contains_line_no?(potential_path) do 20 set_command_and_path(exec, options, @explain_command_name, potential_path) 21 else 22 set_command_and_path(exec, options, @default_command_name, options.path) 23 end 24 end 25 26 defp determine_command(exec, _options), do: exec 27 28 defp set_command_and_path(exec, options, command, path) do 29 %Execution{ 30 exec 31 | cli_options: %Options{ 32 options 33 | command: command, 34 path: path 35 } 36 } 37 end 38 end