diff options
-rw-r--r-- | src/ejabberd.erl | 10 | ||||
-rw-r--r-- | src/ejabberd_app.erl | 10 | ||||
-rw-r--r-- | src/translate.erl | 8 |
3 files changed, 24 insertions, 4 deletions
diff --git a/src/ejabberd.erl b/src/ejabberd.erl index 3deda9a5..3a5c19c6 100644 --- a/src/ejabberd.erl +++ b/src/ejabberd.erl @@ -10,7 +10,8 @@ -author('alexey@sevcom.net'). -vsn('$Revision$ '). --export([start/0, stop/0]). +-export([start/0, stop/0, + get_so_path/0]). start() -> application:start(ejabberd). @@ -19,3 +20,10 @@ stop() -> application:stop(ejabberd). +get_so_path() -> + case os:getenv("EJABBERD_SO_PATH") of + false -> + "."; + Path -> + Path + end. diff --git a/src/ejabberd_app.erl b/src/ejabberd_app.erl index 81640a60..8be98cfe 100644 --- a/src/ejabberd_app.erl +++ b/src/ejabberd_app.erl @@ -51,9 +51,15 @@ init() -> register(ejabberd, self()), %erlang:system_flag(fullsweep_after, 0), %error_logger:logfile({open, ?LOG_PATH}), - error_logger:add_report_handler(ejabberd_logger_h, ?LOG_PATH), + LogPath = case os:getenv("EJABBERD_LOG_PATH") of + false -> + "."; + Path -> + Path + end, + error_logger:add_report_handler(ejabberd_logger_h, LogPath), %timer:apply_interval(3600000, ?MODULE, dump_ports, []), - ok = erl_ddll:load_driver(".", expat_erl), + ok = erl_ddll:load_driver(ejabberd:get_so_path(), expat_erl), Port = open_port({spawn, expat_erl}, [binary]), loop(Port). diff --git a/src/translate.erl b/src/translate.erl index 78994934..63507c8c 100644 --- a/src/translate.erl +++ b/src/translate.erl @@ -18,7 +18,13 @@ start() -> ets:new(translations, [named_table, public]), - load_dir(?MSGS_DIR), + Dir = case os:getenv("EJABBERD_MSGS_PATH") of + false -> + ?MSGS_DIR; + Path -> + Path + end, + load_dir(Dir), ok. load_dir(Dir) -> |