diff --git a/apps/emqx_conf/src/emqx_conf.erl b/apps/emqx_conf/src/emqx_conf.erl index 00648db31..3da9f0457 100644 --- a/apps/emqx_conf/src/emqx_conf.erl +++ b/apps/emqx_conf/src/emqx_conf.erl @@ -146,8 +146,7 @@ dump_schema(Dir, SchemaModule, I18nFile) -> fun(Lang) -> gen_config_md(Dir, I18nFile, SchemaModule, Lang), gen_api_schema_json(Dir, I18nFile, Lang), - ExampleDir = filename:join(filename:dirname(filename:dirname(I18nFile)), "etc"), - gen_example_conf(ExampleDir, I18nFile, SchemaModule, Lang) + gen_example_conf(Dir, I18nFile, SchemaModule, Lang) end, [en, zh] ), diff --git a/build b/build index de00aba6c..76298f1ab 100755 --- a/build +++ b/build @@ -92,7 +92,7 @@ log() { } make_docs() { - local libs_dir1 libs_dir2 libs_dir3 + local libs_dir1 libs_dir2 libs_dir3 docdir dashboard_www_static libs_dir1="$("$FIND" "_build/$PROFILE/lib/" -maxdepth 2 -name ebin -type d)" if [ -d "_build/default/lib/" ]; then libs_dir2="$("$FIND" "_build/default/lib/" -maxdepth 2 -name ebin -type d)" @@ -112,12 +112,16 @@ make_docs() { SCHEMA_MODULE='emqx_conf_schema' ;; esac + docdir="_build/docgen/$PROFILE" + dashboard_www_static='apps/emqx_dashboard/priv/www/static/' + mkdir -p "$docdir" "$dashboard_www_static" # shellcheck disable=SC2086 erl -noshell -pa $libs_dir1 $libs_dir2 $libs_dir3 -eval \ - "Dir = filename:join([apps, emqx_dashboard, priv, www, static]), \ - I18nFile = filename:join([apps, emqx_dashboard, priv, 'i18n.conf']), \ - ok = emqx_conf:dump_schema(Dir, $SCHEMA_MODULE, I18nFile), \ + "I18nFile = filename:join([apps, emqx_dashboard, priv, 'i18n.conf']), \ + ok = emqx_conf:dump_schema('$docdir', $SCHEMA_MODULE, I18nFile), \ halt(0)." + cp "$docdir"/bridge-api-*.json "$dashboard_www_static" + cp "$docdir"/hot-config-schema-*.json "$dashboard_www_static" } assert_no_compile_time_only_deps() { diff --git a/mix.exs b/mix.exs index 158d46af4..d2b82266b 100644 --- a/mix.exs +++ b/mix.exs @@ -373,9 +373,11 @@ defmodule EMQXUmbrella.MixProject do Path.join(etc, "certs") ) + profile = System.get_env("MIX_ENV") + Mix.Generator.copy_file( - "apps/emqx_dashboard/etc/emqx.conf.en.example", - Path.join(etc, "emqx-example.conf"), + "_build/docgen/#{profile}/emqx.conf.en.example", + Path.join(etc, "emqx.conf.example"), force: overwrite? ) diff --git a/rebar.config.erl b/rebar.config.erl index 349770487..e976d7729 100644 --- a/rebar.config.erl +++ b/rebar.config.erl @@ -462,7 +462,8 @@ etc_overlay(ReleaseType, Edition) -> [ {mkdir, "etc/"}, {copy, "{{base_dir}}/lib/emqx/etc/certs", "etc/"}, - {copy, "apps/emqx_dashboard/etc/emqx.conf.en.example", "etc/emqx-example.conf"} + {copy, "_build/docgen/" ++ name(Edition) ++ "/emqx.conf.en.example", + "etc/emqx.conf.example"} ] ++ lists:map( fun @@ -598,3 +599,6 @@ list_dir(Dir) -> false -> [] end. + +name(ce) -> "emqx"; +name(ee) -> "emqx-enterprise".