Packages
exrm
0.12.5
1.0.8
1.0.6
1.0.5
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0
1.0.0-rc8
1.0.0-rc7
1.0.0-rc6
1.0.0-rc5
1.0.0-rc4
1.0.0-rc3
0.19.9
0.19.8
0.19.7
0.19.6
0.19.5
0.19.4
0.19.3
0.19.2
0.19.1
0.19.0
0.18.8
0.18.7
0.18.6
0.18.5
0.18.4
0.18.3
0.18.2
0.18.1
0.18.0
0.17.3
0.17.2
0.17.1
0.17.0
0.16.0
0.15.3
0.15.2
0.15.1
0.15.0
0.14.17
0.14.16
0.14.15
0.14.14
0.14.13
0.14.12
0.14.11
0.14.10
0.14.9
0.14.8
0.14.7
0.14.6
0.14.5
0.14.3
0.14.2
0.14.1
0.14.0
0.12.12
0.12.11
0.12.10
0.12.9
0.12.8
0.12.7
0.12.6
0.12.5
0.12.4
0.11.3
0.11.2
0.11.1
0.11.0
0.10.3
0.10.1
0.10.0
0.9.2
0.9.1
0.8.1
0.8.0
0.7.3
0.7.2
0.7.1
0.7.0
0.6.15
0.6.14
0.6.13
0.6.12
0.6.11
0.6.10
0.6.9
0.6.8
0.6.7
0.6.6
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.0
0.4.7
Exrm, or Elixir Release Manager, provides mix tasks for building, upgrading, and controlling release packages for your application.
Current section
Files
Jump to
Current section
Files
lib/exrm/plugins/consolidation.ex
defmodule ReleaseManager.Plugin.Consolidation do
use ReleaseManager.Plugin
alias ReleaseManager.Config
alias ReleaseManager.Utils
import ReleaseManager.Utils
def before_release(%Config{verbosity: verbosity}) do
debug "Performing protocol consolidation..."
with_env :prod, fn ->
cond do
verbosity == :verbose ->
mix "compile.protocols", :prod, :verbose
true ->
mix "compile.protocols", :prod
end
end
# Load relx.config
{:ok, relx_config} = Utils.rel_dest_path("relx.config")
|> String.to_char_list
|> :file.consult
# Add overlay to relx.config which copies consolidated dir to release
updated = Enum.reduce relx_config, [], fn
{:overlay, overlays}, config ->
consolidated_path = Path.join([File.cwd!, "_build", "prod", "consolidated"])
consolidated_overlay = {:copy, consolidated_path |> String.to_char_list, 'lib/consolidated'}
[{:overlay, overlays ++ [consolidated_overlay]} | config]
element, config ->
[element | config]
end
# Persist relx.config
format_str = String.duplicate("~p.\n\n", Enum.count(updated)) |> String.to_char_list
:file.write_file('#{Utils.rel_dest_path("relx.config")}', :io_lib.fwrite(format_str, updated |> Enum.reverse))
end
def after_release(_), do: nil
def after_cleanup(_), do: nil
end