| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- #!/usr/bin/env escript
- %% This script is only used at build time to generate the merged desc.en.hocon in JSON format
- %% but NOT the file generated to _build/$PROFILE/lib/emqx_dashboard/priv (which is HOCON format).
- %%
- %% The generated JSON file is used as the source of truth when translating to other languages.
- -mode(compile).
- -define(RED, "\e[31m").
- -define(RESET, "\e[39m").
- main(_) ->
- try
- _ = hocon:module_info()
- catch
- _:_ ->
- fail("hocon module not found, please make sure the project is compiled")
- end,
- %% wildcard all .hocon files in rel/i18n
- Files = filelib:wildcard("rel/i18n/*.hocon"),
- case Files of
- [_ | _] ->
- ok;
- [] ->
- fail("No .hocon files found in rel/i18n")
- end,
- case hocon:files(Files) of
- {ok, Map} ->
- JSON = jiffy:encode(Map),
- io:format("~s~n", [JSON]);
- {error, Reason} ->
- fail("~p~n", [Reason])
- end.
- fail(Str) ->
- fail(Str, []).
- fail(Str, Args) ->
- io:format(standard_error, ?RED ++ "ERROR: " ++ Str ++ ?RESET ++ "~n", Args),
- halt(1).
|