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
|
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).
|
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}
|
\makesubsection{hostnames}{Host Names}
|
||||||
\ind{options!hosts}\ind{host names}
|
\ind{options!hosts}\ind{host names}
|
||||||
|
|
||||||
|
@ -190,7 +190,7 @@ consult(File) ->
|
|||||||
{ok, []} ->
|
{ok, []} ->
|
||||||
{ok, []};
|
{ok, []};
|
||||||
{ok, [Document|_]} ->
|
{ok, [Document|_]} ->
|
||||||
{ok, Document};
|
{ok, parserl(Document)};
|
||||||
{error, Err} ->
|
{error, Err} ->
|
||||||
Msg1 = "Cannot load " ++ File ++ ": ",
|
Msg1 = "Cannot load " ++ File ++ ": ",
|
||||||
Msg2 = p1_yaml:format_error(Err),
|
Msg2 = p1_yaml:format_error(Err),
|
||||||
@ -207,6 +207,19 @@ consult(File) ->
|
|||||||
end
|
end
|
||||||
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.
|
%% @doc Convert configuration filename to absolute path.
|
||||||
%% Input is an absolute or relative path to an ejabberd configuration file.
|
%% Input is an absolute or relative path to an ejabberd configuration file.
|
||||||
%% And returns an absolute path to the configuration file.
|
%% And returns an absolute path to the configuration file.
|
||||||
|
Loading…
Reference in New Issue
Block a user