I think you can probably do this with Mix.Project.config/0. Something like:
defmodule Mix.Tasks.CheckHelper do
def build_help do
checks = Mix.Project.config()
|> Keyword.get(:checks)
|> Enum.map(fn el -> elem(el, 0) end)
|> Enum.join("\n\n")
{0, checks}
end
end
defmodule Mix.Tasks.Check do
use Mix.Task
alias Mix.Tasks.CheckHelper
Module.put_attribute(__MODULE__, :moduledoc, CheckHelper.build_help())
@impl Mix.Task
def run(_args) do
Mix.shell().info("use `mix help check`")
end
end
$ mix check && mix help check
mix check
test
cspell
compile (no warnings)
I don’t think this is ideal, but it’s a starting point, hopefully. Or it’s bad enough that someone will correct it for an actual solution.






















