diff --git a/.gitignore b/.gitignore index d1b8a289e..0322aaddc 100644 --- a/.gitignore +++ b/.gitignore @@ -32,3 +32,5 @@ rebar3.crashdump .DS_Store rebar.config emqx.iml +bbmustache/ +etc/gen.emqx.conf diff --git a/Makefile b/Makefile index e12a516b1..452d7c57d 100644 --- a/Makefile +++ b/Makefile @@ -51,6 +51,29 @@ DIALYZER_OPTS := --verbose --statistics -Werror_handling -Wrace_conditions #-Wun include erlang.mk -app.config:: - ./deps/cuttlefish/cuttlefish -l info -e etc/ -c etc/emqx.conf -i priv/emqx.schema -d data/ +clean:: gen-clean + +.PHONY: gen-clean +gen-clean: + @rm -rf bbmustache + @rm -f etc/gen.emqx.conf + +bbmustache: + $(verbose) git clone https://github.com/soranoba/bbmustache.git && pushd bbmustache && ./rebar3 compile && popd + +# This hack is to generate a conf file for testing +# relx overlay is used for release +etc/gen.emqx.conf: bbmustache etc/emqx.conf + $(verbose) erl -noshell -pa bbmustache/_build/default/lib/bbmustache/ebin -eval \ + "{ok, Temp} = file:read_file('etc/emqx.conf'), \ + {ok, Vars0} = file:consult('vars'), \ + Vars = [{atom_to_list(N), list_to_binary(V)} || {N, V} <- Vars0], \ + Targ = bbmustache:render(Temp, Vars), \ + ok = file:write_file('etc/gen.emqx.conf', Targ), \ + halt(0)." + +app.config: etc/gen.emqx.conf + $(verbose) ./deps/cuttlefish/cuttlefish -l info -e etc/ -c etc/gen.emqx.conf -i priv/emqx.schema -d data/ + +ct: app.config diff --git a/test/emqx_ct_broker_helpers.erl b/test/emqx_ct_broker_helpers.erl index ba1883ecc..62a91df54 100644 --- a/test/emqx_ct_broker_helpers.erl +++ b/test/emqx_ct_broker_helpers.erl @@ -63,7 +63,7 @@ run_teardown_steps() -> generate_config() -> Schema = cuttlefish_schema:files([local_path(["priv", "emqx.schema"])]), - Conf = conf_parse:file([local_path(["etc", "emqx.conf"])]), + Conf = conf_parse:file([local_path(["etc", "gen.emqx.conf"])]), cuttlefish_generator:map(Schema, Conf). get_base_dir(Module) -> diff --git a/test/emqx_listeners_SUITE.erl b/test/emqx_listeners_SUITE.erl index 6086e98c2..9d85583ab 100644 --- a/test/emqx_listeners_SUITE.erl +++ b/test/emqx_listeners_SUITE.erl @@ -49,7 +49,7 @@ restart_listeners(_) -> generate_config() -> Schema = cuttlefish_schema:files([local_path(["priv", "emqx.schema"])]), - Conf = conf_parse:file([local_path(["etc", "emqx.conf"])]), + Conf = conf_parse:file([local_path(["etc", "gen.emqx.conf"])]), cuttlefish_generator:map(Schema, Conf). set_app_env({App, Lists}) -> diff --git a/vars b/vars new file mode 100644 index 000000000..fedd69a45 --- /dev/null +++ b/vars @@ -0,0 +1,9 @@ +%% vars here are for test only, not intended for release + +{platform_bin_dir, "bin"}. +{platform_data_dir, "data"}. +{platform_etc_dir, "etc"}. +{platform_lib_dir, "lib"}. +{platform_log_dir, "log"}. +{platform_plugins_dir, "plugins"}. +