%%% API
%%%===================================================================
from_dir(ProsodyDir) ->
- case file:list_dir(ProsodyDir) of
- {ok, HostDirs} ->
- lists:foreach(
- fun(HostDir) ->
- Host = list_to_binary(HostDir),
- lists:foreach(
- fun(SubDir) ->
- Path = filename:join(
- [ProsodyDir, HostDir, SubDir]),
- convert_dir(Path, Host, SubDir)
- end, ["vcard", "accounts", "roster",
- "private", "config", "offline",
- "privacy", "pep", "pubsub"])
- end, HostDirs);
- {error, Why} = Err ->
- ?ERROR_MSG("failed to list ~s: ~s",
- [ProsodyDir, file:format_error(Why)]),
+ case code:ensure_loaded(luerl) of
+ {module, _} ->
+ case file:list_dir(ProsodyDir) of
+ {ok, HostDirs} ->
+ lists:foreach(
+ fun(HostDir) ->
+ Host = list_to_binary(HostDir),
+ lists:foreach(
+ fun(SubDir) ->
+ Path = filename:join(
+ [ProsodyDir, HostDir, SubDir]),
+ convert_dir(Path, Host, SubDir)
+ end, ["vcard", "accounts", "roster",
+ "private", "config", "offline",
+ "privacy", "pep", "pubsub"])
+ end, HostDirs);
+ {error, Why} = Err ->
+ ?ERROR_MSG("failed to list ~s: ~s",
+ [ProsodyDir, file:format_error(Why)]),
+ Err
+ end;
+ {error, _} = Err ->
+ ?INFO_MSG("The file 'luerl.beam' is not found: maybe "
+ "ejabberd is not compiled with Lua support", []),
Err
end.