Mercurial > irccd
annotate doc/html/misc/configuration-syntax.md @ 260:904ee87bc808
CMake: split documentation into several topic, closes #535
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 14 Sep 2016 13:36:06 +0200 |
parents | |
children | 5795a1769de5 |
rev | line source |
---|---|
260
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
1 --- |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
2 title: Configuration file format |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
3 guide: yes |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
4 toc: yes |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
5 --- |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
6 |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
7 Both `irccd` and `irccdctl` use configuration file in a extended [INI][ini] format. |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
8 |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
9 # General syntax |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
10 |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
11 The file syntax has following rules: |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
12 |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
13 1. Each option is stored in a section, |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
14 2. Some sections may be redefined multiple times, |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
15 3. Empty option must have quotes (e.g. `option = ""`). |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
16 |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
17 # The @include statement |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
18 |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
19 Irccd adds an extension to this format by adding an `@include` keyword which let you splitting your configuration file. |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
20 |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
21 <div class="alert alert-info" role="alert"> |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
22 **Note:** this `@include` statement must be at the beginning of the file and must be surrounded by quotes if the file |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
23 name has spaces. |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
24 </div> |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
25 |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
26 You can use both relative or absolute paths. If relative paths are used, they are relative to the current file being |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
27 parsed. |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
28 |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
29 ## Example |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
30 |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
31 ````ini |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
32 @include "rules.conf" |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
33 @include "servers.conf" |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
34 |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
35 [mysection] |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
36 myoption = "1" |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
37 ```` |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
38 |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
39 # The list construct |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
40 |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
41 When requested, an option can have multiples values in a list. The syntax uses parentheses and values are separated |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
42 by commas. |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
43 |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
44 If the list have only one value, you can just use a simple string. |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
45 |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
46 ## Examples |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
47 |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
48 <div class="panel panel-success"> |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
49 <div class="panel-heading">**Example:** two servers defined in a rule</div> |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
50 <div class="panel-body"> |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
51 ````ini |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
52 [rule] |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
53 servers = ( "server1", "server2" ) |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
54 ```` |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
55 </div> |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
56 </div> |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
57 |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
58 <div class="panel panel-success"> |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
59 <div class="panel-heading">**Example:** only one server</div> |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
60 <div class="panel-body"> |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
61 ````ini |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
62 [rule] |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
63 servers = "only-one-server" |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
64 ```` |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
65 </div> |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
66 </div> |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
67 |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
68 <div class="alert alert-info" role="alert"> |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
69 **Note:** spaces are completely optional. |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
70 </div> |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
71 |
904ee87bc808
CMake: split documentation into several topic, closes #535
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
72 [ini]: https://en.wikipedia.org/wiki/INI_file |