diff options
| author | Daniil Fedotov <dfedotov@pivotal.io> | 2016-02-04 18:03:07 +0000 |
|---|---|---|
| committer | Daniil Fedotov <dfedotov@pivotal.io> | 2016-02-04 18:03:07 +0000 |
| commit | 246c21eec2d8acce04ce5bafa283877f46351666 (patch) | |
| tree | 662f0ae235ab1e304a822b0800f84156b420f4e3 /src | |
| parent | d4ec127d7aa0a8d6514599006db550de96fbdf09 (diff) | |
| download | rabbitmq-server-git-246c21eec2d8acce04ce5bafa283877f46351666.tar.gz | |
Call config generation from within erlang
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit.erl | 8 | ||||
| -rw-r--r-- | src/rabbit_config.erl | 37 |
2 files changed, 45 insertions, 0 deletions
diff --git a/src/rabbit.erl b/src/rabbit.erl index d7915e3bce..23f5fa77b3 100644 --- a/src/rabbit.erl +++ b/src/rabbit.erl @@ -272,6 +272,14 @@ start() -> boot() -> start_it(fun() -> + % case rabbit_config:prepare_config() of + % ok -> ok; + % {error, Reason} -> + % log_boot_error_and_exit( + % generate_config_file, + % "~nConfig file generation failed ~p", + % [Reason]) + % end, ok = ensure_application_loaded(), HipeResult = rabbit_hipe:maybe_hipe_compile(), ok = start_logger(), diff --git a/src/rabbit_config.erl b/src/rabbit_config.erl new file mode 100644 index 0000000000..cb2e6a144a --- /dev/null +++ b/src/rabbit_config.erl @@ -0,0 +1,37 @@ +-module(rabbit_config). + +-export([generate_config_file/1, prepare_config/0]). + +prepare_config() -> + {ok, Configs} = init:get_argument(config), + ConfFiles = [Config++".conf" || [Config] <- Configs, + rabbit_file:is_file(Config ++ ".conf")], + case ConfFiles of + [] -> ok; + _ -> + case generate_config_file(ConfFiles) of + {ok, GeneratedConfigFile} -> + ok = application_controller:change_application_data( + [], [GeneratedConfigFile]); + {error, Reason} -> + {error, Reason} + end + end. + +generate_config_file(ConfFiles) -> + rabbit_file:recursive_delete("./generated"), + ConfArg = [["-c", ConfFile] || ConfFile <- ConfFiles], + Command = case os:type() of + {unix, _} -> + ["./generate-config ", ConfArg]; + {win32, _} -> + [".generate-config.bat ", ConfArg]; + _ -> + {error, os_unsupported} + end, + Result = os:cmd(Command), + case string:str(Result, " -config ") of + 0 -> {error, {generaion_error, Result}}; + _ -> {ok, "./generated/rabbitmq.config"} + end. +
\ No newline at end of file |
