Current section

Files

Jump to
receiver lib mix tasks build.ex
Raw

lib/mix/tasks/build.ex

if Mix.env() == :test do
defmodule Mix.Tasks.Receiver.Build do
@moduledoc false
import IO.ANSI, only: [cyan: 0, bright: 0]
alias Mix.Tasks.{Coveralls, Credo, Docs, Format, Inch}
use Mix.Task
@preferred_cli_env :test
@required_elixir_version "1.8"
@spec run(argv :: [String.t()]) :: nil
def run(argv) do
{opts, argv, _} = OptionParser.parse(argv, switches: [format: :boolean])
if Keyword.get(opts, :format, true), do: run_formatter(argv)
do_run(argv)
end
@spec run_formatter([binary()]) :: any()
def run_formatter(argv) do
if System.version() >= @required_elixir_version do
Mix.shell().info("#{cyan()}#{bright()}Running formatter")
Format.run(["--check-equivalent" | argv])
else
raise RuntimeError, """
#{bright()}Elixir version must be >= #{@required_elixir_version}. Detected version:
* #{System.version()}
Please upgrade to Elixir #{@required_elixir_version} or above to continue development on this project.
"""
end
end
@spec do_run([binary()]) :: nil
def do_run(argv) do
Coveralls.Html.run(argv)
Inch.run(argv)
Docs.run(argv)
Credo.run(["--strict" | argv])
end
end
end