Packages
exrm
0.19.2
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
@name "protocol.consolidation"
@shortdoc "Performs protocol consolidation for your release."
use ReleaseManager.Plugin
alias ReleaseManager.Config
alias ReleaseManager.Utils
import ReleaseManager.Utils
def before_release(%Config{verbosity: verbosity, env: env}) do
debug "Performing protocol consolidation..."
with_env env, fn ->
cond do
verbosity == :verbose ->
mix "compile.protocols", env, :verbose
true ->
mix "compile.protocols", env
end
end
# Load relx.config
relx_config = Utils.rel_file_dest_path("relx.config") |> Utils.read_terms
# Add overlay to relx.config which copies consolidated dir to release
consolidated_path = Path.join([File.cwd!, "_build", "#{env}", "consolidated"])
overlays = [overlay: [
{:copy, '#{consolidated_path}', 'lib/consolidated'}
]]
updated = Utils.merge(relx_config, overlays)
# Persist relx.config
Utils.write_terms(Utils.rel_file_dest_path("relx.config"), updated)
end
def after_release(_), do: nil
def after_package(_), do: nil
def after_cleanup(_), do: nil
end