defmodule ExCheck.Config.Default do @moduledoc false # Default tool order tries to put short-running tools first in order for sequential output # streaming to display as many outputs as possible as soon as possible. @curated_tools [ {:compiler, "mix compile --warnings-as-errors --force"}, {:unused_deps, "mix deps.unlock --check-unused", detect: [{:elixir, ">= 1.10.0"}], fix: "mix deps.unlock --unused"}, {:formatter, "mix format --check-formatted", detect: [{:file, ".formatter.exs"}], fix: "mix format"}, {:mix_audit, "mix deps.audit", detect: [{:package, :mix_audit}]}, {:credo, "mix credo", detect: [{:package, :credo}]}, {:doctor, "mix doctor", detect: [{:package, :doctor}, {:elixir, ">= 1.8.0"}]}, {:sobelow, "mix sobelow --exit", umbrella: [recursive: true], detect: [{:package, :sobelow}]}, {:ex_doc, "mix docs", detect: [{:package, :ex_doc}]}, {:ex_unit, "mix test", detect: [{:file, "test"}], retry: "mix test --failed"}, {:dialyzer, "mix dialyzer", detect: [{:package, :dialyxir}]}, {:gettext, "mix gettext.extract --check-up-to-date", detect: [{:package, :gettext}], deps: [:ex_unit]}, {:npm_test, "npm test", cd: "assets", detect: [{:file, "package.json", else: :disable}]} ] @default_config [ parallel: true, skipped: true, tools: @curated_tools ] def get do @default_config end def tool_order(tool) do Enum.find_index(@curated_tools, &(elem(&1, 0) == tool)) end end