ash/lib/mix/tasks/ash.generate_livebook.ex
Zach Daniel 46ed97dd10 improvement: add ash.rollback mix task
chore: fix some naming/mix task steps
2024-04-09 20:24:08 -04:00

34 lines
789 B
Elixir

defmodule Mix.Tasks.Ash.GenerateLivebook do
@moduledoc """
Generates a Livebook for each Ash domain.
## Command line options
* `--filename` - Specify the name of the generated Livebook file. Default: `livebook.livemd`
"""
use Mix.Task
@shortdoc "Generates a Livebook for each Ash domain"
@doc @shortdoc
def run(argv) do
Mix.Task.run("compile")
{opts, _} =
OptionParser.parse!(argv,
strict: [filename: :string],
aliases: [f: :filename]
)
filename = Keyword.get(opts, :filename, "livebook.livemd")
File.write!(filename, Ash.Domain.Info.Livebook.overview(domains()))
Mix.shell().info("Generated Livebook")
end
def domains do
Mix.Project.config()[:app]
|> Application.get_env(:ash_domains, [])
end
end