aboutsummaryrefslogtreecommitdiffstats
path: root/src/rlx_prv_archive.erl
diff options
context:
space:
mode:
authorJordan Wilberding <[email protected]>2014-12-16 17:01:40 -0800
committerJordan Wilberding <[email protected]>2014-12-16 17:01:40 -0800
commit8a64fd860e354cd3c32b5d6471052314bdd50674 (patch)
tree566c18f442f778cafd0320b91ab868c8a18eb10a /src/rlx_prv_archive.erl
parent98c0290b8be73b31515b6da4c85a6c0f89a69b5a (diff)
parent63587bb0b40d5a396bd8b277f89a5afe901843e1 (diff)
downloadrelx-8a64fd860e354cd3c32b5d6471052314bdd50674.tar.gz
relx-8a64fd860e354cd3c32b5d6471052314bdd50674.tar.bz2
relx-8a64fd860e354cd3c32b5d6471052314bdd50674.zip
Merge pull request #281 from tsloughter/overlays_archive
render overlay filenames for tar archive
Diffstat (limited to 'src/rlx_prv_archive.erl')
-rw-r--r--src/rlx_prv_archive.erl16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/rlx_prv_archive.erl b/src/rlx_prv_archive.erl
index 8ec7973..0532dc5 100644
--- a/src/rlx_prv_archive.erl
+++ b/src/rlx_prv_archive.erl
@@ -104,10 +104,13 @@ make_tar(State, Release, OutputDir) ->
end.
update_tar(State, TempDir, OutputDir, Name, Vsn, ErtsVersion) ->
+ {RelName, RelVsn} = rlx_state:default_configured_release(State),
+ Release = rlx_state:get_realized_release(State, RelName, RelVsn),
TarFile = filename:join(OutputDir, Name++"-"++Vsn++".tar.gz"),
file:rename(filename:join(OutputDir, Name++".tar.gz"), TarFile),
erl_tar:extract(TarFile, [{cwd, TempDir}, compressed]),
- OverlayFiles = overlay_files(rlx_state:get(State, overlay, undefined), OutputDir),
+ OverlayVars = rlx_prv_overlay:generate_overlay_vars(State, Release),
+ OverlayFiles = overlay_files(OverlayVars, rlx_state:get(State, overlay, undefined), OutputDir),
ok =
erl_tar:create(TarFile,
[{"lib", filename:join(TempDir, "lib")},
@@ -130,10 +133,15 @@ update_tar(State, TempDir, OutputDir, Name, Vsn, ErtsVersion) ->
ec_file:remove(TempDir, [recursive]),
{ok, State}.
-overlay_files(undefined, _) ->
+overlay_files(_, undefined, _) ->
[];
-overlay_files(Overlay, OutputDir) ->
- [{to(O), filename:join(OutputDir, to(O))} || O <- Overlay, filter(O)].
+overlay_files(OverlayVars, Overlay, OutputDir) ->
+ [begin
+ To = to(O),
+ ToTemplateName = rlx_prv_overlay:make_template_name("rlx_template_to_template", To),
+ File = rlx_prv_overlay:render_string(OverlayVars, To, ToTemplateName),
+ {ec_cnv:to_list(File), ec_cnv:to_list(filename:join(OutputDir, File))}
+ end || O <- Overlay, filter(O)].
to({copy, _, To}) ->
To;