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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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