Added README.
[erlang-eni.git] / README
1 == ENI ==
2
3 ENI is a configuration format based on dead-simple INI known from DOS and
4 Windows. ENI is a superset of (one of the variants of) INI -- ENI additionally
5 supports Erlang terms in config.
6
7 ENI is not intended to be used inside typical Erlang application. There is
8 already well established practice of keeping default configuration in `*.app'
9 file and customizing it by setting environment.
10
11 ENI is meant mainly for maintainers writing tools that interact with system
12 administrator. Such tools usually are scripts for starting a daemon or
13 command line tools, standalone or for issuing commands to a daemon.
14
15 == Examples ==
16
17 Usage examples:
18
19   % loading config from file
20   {ok, Conf} = eni:file("file.eni"),
21   % loading config from in-memory string
22   {ok, Conf} = eni:string("..."),
23
24   {Opts, Sections} = Conf,
25   Foo = proplists:get_value(foo, Opts),
26   BarSect = proplists:get_value(bar, Sections),
27   Bar_Baz = proplists:get_value(baz, BarSect).
28
29
30 Short example of ENI file:
31
32   ; traditional INI comment
33   # more "unixish" comment
34   % and "erlangish" comment
35
36   pid_file = /var/run/erl_daemon.pid
37   enabled_services := [http, https].
38
39   [http]
40   bind = 127.0.0.1
41   port := [8080, 8880].
42
43   [https]
44   bind := any.
45   port = 8443
46   ssl_cert = /etc/erl_daemon/cert.pem
47   ssl_key  = /etc/erl_daemon/key.pem