Skip to content

Commit

Permalink
add forwarding call to generate config from nerves release template
Browse files Browse the repository at this point in the history
  • Loading branch information
mobileoverlord committed Nov 29, 2016
1 parent 833803e commit 4c6b0f4
Show file tree
Hide file tree
Showing 2 changed files with 72 additions and 0 deletions.
18 changes: 18 additions & 0 deletions lib/mix/tasks/nerves.release.init.ex
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
defmodule Mix.Tasks.Nerves.Release.Init do
use Mix.Task

@moduledoc """
Prepares a new project for use with releases.
By default, this forwards the call to
mix release.init --template /path/to/nerves/release_template.eex
For more information on additional args, reference
mix help release.init
"""

@spec run(OptionParser.argv) :: no_return
def run(args) do
template_path = Path.join(["#{:code.priv_dir(:nerves)}", "templates", "release.eex"])
Mix.Task.run("release.init", args ++ ["--template", template_path])
end
end
54 changes: 54 additions & 0 deletions priv/templates/release.eex
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
use Mix.Releases.Config,
# This sets the default release built by `mix release`
default_release: :default,
# This sets the default environment used by `mix release`
default_environment: :dev
<%= unless no_docs do %>
# For a full list of config options for both releases
# and environments, visit https://hexdocs.pm/distillery/configuration.html
<% end %>
<%= unless no_docs do %>
# You may define one or more environments in this file,
# an environment's settings will override those of a release
# when building in that environment, this combination of release
# and environment configuration is called a profile
<% end %>
environment :dev do
set cookie: <%= inspect(cookie) %>
end

environment :prod do
set cookie: <%= inspect(cookie) %>
end
<%= unless no_docs do %>
# You may define one or more releases in this file.
# If you have not set a default release, or selected one
# when running `mix release`, the first release in the file
# will be used by default<% end %>
<%= for release <- releases do %><%= if Keyword.get(release, :is_umbrella) do %>
release :<%= Keyword.get(release, :release_name) %> do
set version: "0.1.0"
set applications: [
<%= Enum.map(Keyword.get(release, :release_applications), fn {app, start_type} ->
" #{app}: :#{start_type}"
end) |> Enum.join(",\n") %>
]
if System.get_env("NERVES_SYSTEM") do
set dev_mode: false
set include_src: false
set include_erts: System.get_env("ERL_LIB_DIR")
set include_system_libs: System.get_env("ERL_SYSTEM_LIB_DIR")
set vm_args: "rel/vm.args"
end
end<% else %>
release :<%= Keyword.get(release, :release_name) %> do
set version: current_version(:<%= Keyword.get(release, :release_name)%>)
if System.get_env("NERVES_SYSTEM") do
set dev_mode: false
set include_src: false
set include_erts: System.get_env("ERL_LIB_DIR")
set include_system_libs: System.get_env("ERL_SYSTEM_LIB_DIR")
set vm_args: "rel/vm.args"
end
end<% end %>
<% end %>

0 comments on commit 4c6b0f4

Please sign in to comment.