mirror of
https://github.com/processone/ejabberd.git
synced 2024-11-24 16:23:40 +01:00
Support for "> ." in YAML configuration files
This commit is contained in:
parent
0c501b760f
commit
87d2eb5f9a
@ -693,6 +693,29 @@ in Erlang terms. The format is still supported, but it is highly recommended
|
||||
to convert it to the new YAML format using \term{convert\_to\_yaml} command
|
||||
from \term{ejabberdctl} (see~\ref{ejabberdctl} and \ref{list-eja-commands} for details).
|
||||
|
||||
If you want to specify some options using the old Erlang format,
|
||||
you can set them in an additional cfg file, and include it using
|
||||
the \option{include\_config\_file} option, see \ref{includeconfigfile}
|
||||
for the option description and a related example in \ref{accesscommands}.
|
||||
|
||||
If you just want to provide an erlang term inside an option,
|
||||
you can use the \term{"> erlangterm."} syntax for embedding erlang terms in a YAML file, for example:
|
||||
\begin{verbatim}
|
||||
modules:
|
||||
mod_cron:
|
||||
tasks:
|
||||
- time: 10
|
||||
units: seconds
|
||||
module: mnesia
|
||||
function: info
|
||||
arguments: "> []."
|
||||
- time: 3
|
||||
units: seconds
|
||||
module: ejabberd_auth
|
||||
function: try_register
|
||||
arguments: "> [\"user1\", \"localhost\", \"pass\"]."
|
||||
\end{verbatim}
|
||||
|
||||
\makesubsection{hostnames}{Host Names}
|
||||
\ind{options!hosts}\ind{host names}
|
||||
|
||||
|
@ -190,7 +190,7 @@ consult(File) ->
|
||||
{ok, []} ->
|
||||
{ok, []};
|
||||
{ok, [Document|_]} ->
|
||||
{ok, Document};
|
||||
{ok, parserl(Document)};
|
||||
{error, Err} ->
|
||||
Msg1 = "Cannot load " ++ File ++ ": ",
|
||||
Msg2 = p1_yaml:format_error(Err),
|
||||
@ -207,6 +207,19 @@ consult(File) ->
|
||||
end
|
||||
end.
|
||||
|
||||
parserl([$>, $\s | String]) ->
|
||||
{ok, A2, _} = erl_scan:string(String),
|
||||
{ok, A3} = erl_parse:parse_term(A2),
|
||||
A3;
|
||||
parserl(B) when is_binary(B) ->
|
||||
parserl(binary_to_list(B));
|
||||
parserl({A, B}) ->
|
||||
{parserl(A), parserl(B)};
|
||||
parserl([El|Tail]) ->
|
||||
[parserl(El) | parserl(Tail)];
|
||||
parserl(Other) ->
|
||||
Other.
|
||||
|
||||
%% @doc Convert configuration filename to absolute path.
|
||||
%% Input is an absolute or relative path to an ejabberd configuration file.
|
||||
%% And returns an absolute path to the configuration file.
|
||||
|
Loading…
Reference in New Issue
Block a user