diff options
author | Jordan Wilberding <[email protected]> | 2015-11-21 14:01:19 -0800 |
---|---|---|
committer | Jordan Wilberding <[email protected]> | 2015-11-21 14:01:19 -0800 |
commit | 1d42e7ab9ab58386f34a01d101ec4b5e758b7bd6 (patch) | |
tree | 59e283f1a01c183f90f621fd7908faef9638d647 /src | |
parent | c81e404b40c3f2427a60a3f4c9192081839e3398 (diff) | |
parent | 1cde722a7ce0760c723680414cc4af653ab8b260 (diff) | |
download | relx-1d42e7ab9ab58386f34a01d101ec4b5e758b7bd6.tar.gz relx-1d42e7ab9ab58386f34a01d101ec4b5e758b7bd6.tar.bz2 relx-1d42e7ab9ab58386f34a01d101ec4b5e758b7bd6.zip |
Merge pull request #416 from tsloughter/fix_error_msgs
Fix error msgs and add sys.config error message
Diffstat (limited to 'src')
-rw-r--r-- | src/relx.erl | 8 | ||||
-rw-r--r-- | src/rlx_prv_assembler.erl | 19 |
2 files changed, 20 insertions, 7 deletions
diff --git a/src/relx.erl b/src/relx.erl index d2dd797..8027fd4 100644 --- a/src/relx.erl +++ b/src/relx.erl @@ -70,7 +70,7 @@ main(ApiOptions, Args) -> end, case Result of {error, _} -> - report_error(rlx_state:caller(rlx_state:new([], undefined), + report_error(rlx_state:caller(rlx_state:new([], [{caller, command_line}], undefined), command_line), Result); _ -> @@ -327,13 +327,13 @@ usage() -> report_error(State, Error) -> case Error of {error, {relx, {opt_parse, _}}} -> - io:format(standard_error, format_error(Error), []), + ec_cmd_log:error(rlx_state:log(State), format_error(Error), []), usage(); {error, {rlx_cmd_args, _}} -> - io:format(standard_error, format_error(Error), []), + ec_cmd_log:error(rlx_state:log(State), format_error(Error), []), usage(); _ -> - io:format(standard_error, format_error(Error), []) + ec_cmd_log:error(rlx_state:log(State), format_error(Error), []) end, case rlx_state:caller(State) of command_line -> diff --git a/src/rlx_prv_assembler.erl b/src/rlx_prv_assembler.erl index 9a267e4..56b99bd 100644 --- a/src/rlx_prv_assembler.erl +++ b/src/rlx_prv_assembler.erl @@ -89,6 +89,9 @@ format_error({ec_file_error, AppDir, TargetDir, E}) -> format_error({config_does_not_exist, Path}) -> io_lib:format("The config file specified for this release (~s) does not exist!", [Path]); +format_error({sys_config_parse_error, ConfigPath, Reason}) -> + io_lib:format("The config file (~s) specified for this release could not be opened or parsed: ~s", + [ConfigPath, file:format_error(Reason)]); format_error({specified_erts_does_not_exist, ErtsVersion}) -> io_lib:format("Specified version of erts (~s) does not exist", [ErtsVersion]); @@ -379,8 +382,12 @@ write_bin_file(State, Release, OutputDir, RelDir) -> ReleasesDir = filename:join(OutputDir, "releases"), generate_start_erl_data_file(Release, ReleasesDir), copy_or_generate_vmargs_file(State, Release, RelDir), - copy_or_generate_sys_config_file(State, RelDir), - include_erts(State, Release, OutputDir, RelDir). + case copy_or_generate_sys_config_file(State, RelDir) of + ok -> + include_erts(State, Release, OutputDir, RelDir); + E -> + E + end. include_nodetool(BinDir) -> NodeToolFile = nodetool_contents(), @@ -431,7 +438,13 @@ copy_or_generate_sys_config_file(State, RelDir) -> false -> ?RLX_ERROR({config_does_not_exist, ConfigPath}); true -> - copy_or_symlink_config_file(State, ConfigPath, RelSysConfPath) + %% validate sys.config is valid Erlang terms + case file:consult(ConfigPath) of + {ok, _} -> + copy_or_symlink_config_file(State, ConfigPath, RelSysConfPath); + {error, Reason} -> + ?RLX_ERROR({sys_config_parse_error, ConfigPath, Reason}) + end end end. |