Current section
Files
Jump to
Current section
Files
lib/needle_new/generators/web.ex
defmodule Needle.New.Generators.Web do
@moduledoc false
use Needle.New.Generator
alias Needle.New.Project
alias Needle.New.Generators.Shared
@impl true
def prepare_project(%Project{} = project) do
%{base_path: base_path, app: app, module: module} = project
web_app = app
web_module = module
web_lib = to_string(app)
web_app_path = Path.expand(base_path)
root_app_path =
web_app_path
|> Path.dirname()
|> Path.dirname()
%Project{
project
| in_umbrella?: true,
root_app_path: root_app_path,
web_app: web_app,
web_module: web_module,
web_lib: web_lib,
web_app_path: web_app_path,
web_generator_opts: [context_app: false]
}
end
@impl true
def generate(%Project{} = project) do
Shared.patch(project, :web_base_umbrella)
Shared.patch(project, :web)
if Project.assets?(project), do: Shared.patch(project, :assets)
if Project.html?(project), do: Shared.patch(project, :html)
if Project.live?(project), do: Shared.patch(project, :live)
if Project.gettext?(project), do: Shared.patch(project, :gettext)
project
end
end