diff options
author | Jordan Wilberding <[email protected]> | 2015-01-14 16:26:07 -0800 |
---|---|---|
committer | Jordan Wilberding <[email protected]> | 2015-01-14 16:26:07 -0800 |
commit | 9fc9a2f6556d8e86633c87a29db7dc9419005c48 (patch) | |
tree | 7770c070a3140fa288f5c89300d4845cec71802d /src/rlx_prv_archive.erl | |
parent | ab85c2365ad346d77aa425507df75733e4af01d8 (diff) | |
parent | 2dc924a4728177987c3e74f5c1e28d4b9fbc8e90 (diff) | |
download | relx-9fc9a2f6556d8e86633c87a29db7dc9419005c48.tar.gz relx-9fc9a2f6556d8e86633c87a29db7dc9419005c48.tar.bz2 relx-9fc9a2f6556d8e86633c87a29db7dc9419005c48.zip |
Merge pull request #294 from tsloughter/tar_system_libs
remove system libs from tarball if set to false
Diffstat (limited to 'src/rlx_prv_archive.erl')
-rw-r--r-- | src/rlx_prv_archive.erl | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/src/rlx_prv_archive.erl b/src/rlx_prv_archive.erl index 0532dc5..5b4e8c1 100644 --- a/src/rlx_prv_archive.erl +++ b/src/rlx_prv_archive.erl @@ -72,7 +72,7 @@ make_tar(State, Release, OutputDir) -> Vsn = rlx_release:vsn(Release), ErtsVersion = rlx_release:erts(Release), Opts = [{path, [filename:join([OutputDir, "lib", "*", "ebin"])]}, - {outdir, OutputDir} | + {outdir, OutputDir} | case rlx_state:get(State, include_erts, true) of true -> Prefix = code:root_dir(), @@ -104,6 +104,8 @@ make_tar(State, Release, OutputDir) -> end. update_tar(State, TempDir, OutputDir, Name, Vsn, ErtsVersion) -> + IncludeErts = rlx_state:get(State, include_erts, true), + SystemLibs = rlx_state:get(State, system_libs, true), {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"), @@ -113,8 +115,7 @@ update_tar(State, TempDir, OutputDir, Name, Vsn, ErtsVersion) -> OverlayFiles = overlay_files(OverlayVars, rlx_state:get(State, overlay, undefined), OutputDir), ok = erl_tar:create(TarFile, - [{"lib", filename:join(TempDir, "lib")}, - {"releases", filename:join(TempDir, "releases")}, + [{"releases", filename:join(TempDir, "releases")}, {filename:join(["releases", "start_erl.data"]), filename:join([OutputDir, "releases", "start_erl.data"])}, {filename:join(["releases", "RELEASES"]), @@ -122,14 +123,24 @@ update_tar(State, TempDir, OutputDir, Name, Vsn, ErtsVersion) -> {filename:join(["releases", Vsn, "vm.args"]), filename:join([OutputDir, "releases", Vsn, "vm.args"])}, {"bin", filename:join([OutputDir, "bin"])} | - case rlx_state:get(State, include_erts, true) of + case IncludeErts of false -> - []; + %% Remove system libs from tarball + case SystemLibs of + false -> + Libs = filelib:wildcard("*", filename:join(TempDir, "lib")), + AllSystemLibs = filelib:wildcard("*", code:lib_dir()), + [{filename:join("lib", LibDir), filename:join([TempDir, "lib", LibDir])} || + LibDir <- lists:subtract(Libs, AllSystemLibs)]; + _ -> + [{"lib", filename:join(TempDir, "lib")}] + end; _ -> - [{"erts-"++ErtsVersion, filename:join(OutputDir, "erts-"++ErtsVersion)}] + [{"lib", filename:join(TempDir, "lib")}, + {"erts-"++ErtsVersion, filename:join(OutputDir, "erts-"++ErtsVersion)}] end]++OverlayFiles, [compressed]), ec_cmd_log:info(rlx_state:log(State), - "tarball ~s successfully created!~n", [TarFile]), + "tarball ~s successfully created!~n", [TarFile]), ec_file:remove(TempDir, [recursive]), {ok, State}. |