parse_options.ex (918B)
1 defmodule Credo.Execution.Task.ParseOptions do 2 @moduledoc false 3 4 use Credo.Execution.Task 5 6 alias Credo.CLI.Options 7 alias Credo.CLI.Output.UI 8 alias Credo.Execution 9 10 def call(exec, opts) do 11 add_common_aliases? = opts[:parser_mode] == :preliminary 12 use_strict_parser? = opts[:parser_mode] == :strict 13 14 command_names = Execution.get_valid_command_names(exec) 15 16 given_command_name = 17 if exec.cli_options do 18 exec.cli_options.command 19 end 20 21 cli_aliases = 22 if add_common_aliases? do 23 exec.cli_aliases ++ [h: :help, v: :version] 24 else 25 exec.cli_aliases 26 end 27 28 cli_options = 29 Options.parse( 30 use_strict_parser?, 31 exec.argv, 32 File.cwd!(), 33 command_names, 34 given_command_name, 35 [UI.edge()], 36 exec.cli_switches, 37 cli_aliases 38 ) 39 40 %Execution{exec | cli_options: cli_options} 41 end 42 end