Current section
Files
Jump to
Current section
Files
lib/mix/todo.ex
defmodule Mix.Tasks.Todo do
@moduledoc false
use Mix.Task
alias ExTodo.Config
alias Mix.Shell.IO
@shortdoc "Find TODO, FIXME, NOTE, etc throughout your codebase"
@doc """
This Mix task generates a ExTodo report of the project.
"""
def run(_args) do
result =
Config.config_file()
|> load_config_file()
|> merge_defaults()
|> ExTodo.CLI.run_report()
unless result do
System.at_exit(fn _ ->
exit({:shutdown, 1})
end)
end
:ok
end
defp load_config_file(file) do
if File.exists?(file) do
IO.info("ExTodo file found. Loading configuration.")
{config, _bindings} = Code.eval_file(file)
config
else
IO.info("ExTodo file not found. Using defaults.")
%{}
end
end
defp merge_defaults(config) do
Map.merge(Config.config_defaults_as_map(), config)
end
end