Packages

Project repository template to set up all public Phoenix projects at Nimble

Current section

Files

Jump to
nimble_phx_gen_template lib nimble.phx.gen.template addons elixir_version.ex
Raw

lib/nimble.phx.gen.template/addons/elixir_version.ex

defmodule Nimble.Phx.Gen.Template.Addons.ElixirVersion do
use Nimble.Phx.Gen.Template.Addon
@impl true
def do_apply(%Project{} = project, _opts) do
project
|> copy_files()
|> edit_files()
end
defp copy_files(
%Project{
erlang_asdf_version: erlang_asdf_version,
elixir_asdf_version: elixir_asdf_version
} = project
) do
Generator.copy_file([{:eex, ".tool-versions.eex", ".tool-versions"}],
erlang_asdf_version: erlang_asdf_version,
elixir_asdf_version: elixir_asdf_version
)
project
end
defp edit_files(%Project{elixir_mix_version: elixir_mix_version} = project) do
Generator.replace_content(
"mix.exs",
"""
elixir: "~> 1.7",
""",
"""
elixir: "~> #{elixir_mix_version}",
"""
)
project
end
end