summaryrefslogtreecommitdiff
path: root/src/ejabberd_config.erl
diff options
context:
space:
mode:
authorAlexey Shchepin <alexey@process-one.net>2003-01-07 19:10:35 +0000
committerAlexey Shchepin <alexey@process-one.net>2003-01-07 19:10:35 +0000
commit2617433ae30dd7ce014ee68ffdecedd8c77ae4a8 (patch)
tree3cf970ff411ba5ccdde00b2ff3db5b0dd5d75157 /src/ejabberd_config.erl
parent*** empty log message *** (diff)
*** empty log message ***
SVN Revision: 32
Diffstat (limited to 'src/ejabberd_config.erl')
-rw-r--r--src/ejabberd_config.erl49
1 files changed, 49 insertions, 0 deletions
diff --git a/src/ejabberd_config.erl b/src/ejabberd_config.erl
new file mode 100644
index 00000000..5fb03ad2
--- /dev/null
+++ b/src/ejabberd_config.erl
@@ -0,0 +1,49 @@
+%%%----------------------------------------------------------------------
+%%% File : ejabberd_config.erl
+%%% Author : Alexey Shchepin <alexey@sevcom.net>
+%%% Purpose :
+%%% Created : 14 Dec 2002 by Alexey Shchepin <alexey@sevcom.net>
+%%% Id : $Id$
+%%%----------------------------------------------------------------------
+
+-module(ejabberd_config).
+-author('alexey@sevcom.net').
+-vsn('$Revision$ ').
+
+-export([start/0, load_file/1, get_option/1]).
+
+-include("ejabberd.hrl").
+
+start() ->
+ ets:new(ejabberd_config, [named_table, public]),
+ load_file(?CONFIG_PATH).
+
+
+load_file(File) ->
+ {ok, Bin} = file:read_file(File),
+ Content = binary_to_list(Bin),
+ parse(Content).
+
+
+parse(String) ->
+ case erl_scan:tokens([], String, 0) of
+ {done, Result, Left} ->
+ {ok, Tokens, _} = Result,
+ {ok, Term} = erl_parse:parse_term(Tokens),
+ {Opt, Val} = Term,
+ ets:insert(ejabberd_config, {Opt, Val}),
+ parse(Left);
+ _ ->
+ ok
+ end.
+
+get_option(Opt) ->
+ case ets:lookup(ejabberd_config, Opt) of
+ [{_, Val}] ->
+ Val;
+ _ ->
+ undefined
+ end.
+
+
+