chore: require name for ash.codegen

This commit is contained in:
Zach Daniel 2023-12-27 10:12:19 -05:00
parent 19d18c5fcc
commit 26160e446b
2 changed files with 33 additions and 3 deletions

View file

@ -1,9 +1,6 @@
defmodule Ash.Resource.Transformers.CreateJoinRelationship do
@moduledoc """
Creates an automatically named `has_many` relationship for each many_to_many.
This will likely not be around for long, as our logic around many to many relationships
will update soon.
"""
use Spark.Dsl.Transformer

View file

@ -6,6 +6,39 @@ defmodule Mix.Tasks.Ash.Codegen do
@shortdoc "Runs all codegen tasks for any extension on any resource/api in your application."
def run(argv) do
{name, argv} =
case argv do
["-" <> _ | _] ->
{nil, argv}
[first | rest] ->
{first, rest}
[] ->
{nil, []}
end
{opts, _} =
OptionParser.parse!(argv,
strict: [
name: :string,
no_format: :boolean,
dry_run: :boolean,
check: :boolean,
drop_columns: :boolean
]
)
if !opts[:name] && !opts[:dry_run] && !opts[:check] do
raise ArgumentError, """
Name must be provided when running `ash.codegen`, unless `--dry-run` or `--check` is also provided.
Please provide a name. for example:
mix ash.codegen add_feature_for_reticulating_splines #{Enum.join(argv, " ")}
"""
end
argv
|> Ash.Mix.Tasks.Helpers.extensions!()
|> Enum.map(fn extension ->