diff --git a/src/prosody2ejabberd.erl b/src/prosody2ejabberd.erl index 62cb32417..cfee9ae01 100644 --- a/src/prosody2ejabberd.erl +++ b/src/prosody2ejabberd.erl @@ -38,23 +38,30 @@ %%% 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.