diff options
author | Alexey Shchepin <alexey@process-one.net> | 2003-01-07 19:10:35 +0000 |
---|---|---|
committer | Alexey Shchepin <alexey@process-one.net> | 2003-01-07 19:10:35 +0000 |
commit | 2617433ae30dd7ce014ee68ffdecedd8c77ae4a8 (patch) | |
tree | 3cf970ff411ba5ccdde00b2ff3db5b0dd5d75157 /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.erl | 49 |
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. + + + |