/
ecto.ex
35 lines (30 loc) · 1.26 KB
/
ecto.ex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
defmodule Phx.New.Ecto do
@moduledoc false
use Phx.New.Generator
alias Phx.New.{Project}
@pre "phx_umbrella/apps/app_name"
template :new, [
{:config, "#{@pre}/config/config.exs", :project, "config/config.exs"},
{:eex, "#{@pre}/lib/app_name/application.ex", :app, "lib/:app/application.ex"},
{:eex, "#{@pre}/lib/app_name.ex", :app, "lib/:app.ex"},
{:eex, "#{@pre}/test/test_helper.exs", :app, "test/test_helper.exs"},
{:eex, "#{@pre}/README.md", :app, "README.md"},
{:eex, "#{@pre}/mix.exs", :app, "mix.exs"},
{:eex, "#{@pre}/gitignore", :app, ".gitignore"},
{:eex, "#{@pre}/formatter.exs", :app, ".formatter.exs"},
]
def prepare_project(%Project{} = project) do
app_path = Path.expand(project.base_path)
project_path = Path.dirname(Path.dirname(app_path))
%Project{project |
in_umbrella?: true,
app_path: app_path,
project_path: project_path}
end
def generate(%Project{} = project) do
inject_umbrella_config_defaults(project)
copy_from project, __MODULE__, :new
if Project.ecto?(project), do: Phx.New.Single.gen_ecto(project)
project
end
end