1de6ab5b78b89cc8b2a2249f9a357835049171ce
[tiramisu.git] / doc / getting-started.txt
1 ==================================
2 Getting started
3 ==================================
4
5 What is Configuration handling ?
6 =================================
7
8 Due to more and more available configuration options required to set up
9 an operating system, it became quite annoying to hand the necessary
10 options to where they are actually used and even more annoying to add
11 new options. To circumvent these problems the configuration management
12 was introduced...
13
14 What is Tiramisu ?
15 ===================
16
17 Tiramisu is yet another configuration handler, wich aims at producing flexible 
18 and fast configuration options access. The main advantages are its access rules 
19 and the fact that the configuration's consistency is preserved at any time, see 
20 :doc:`consistency`. There is of course type and structure validations, but also 
21 validations towards the whole configuration.
22
23 Last but not least, configuration options can be reached and changed
24 according to the access rules from nearly everywhere in your appliance.
25
26 Just the facts
27 ==============
28
29 .. _gettingtiramisu:
30
31 Download
32 ---------
33
34 To obtain a copy of the sources, check it out from the repository using `git`. 
35 We suggest using `git` if one wants to access the current developments.
36
37 ::
38
39     git clone git://git.labs.libre-entreprise.org/tiramisu.git
40
41 This will get you a fresh checkout of the code repository in a local directory 
42 named ``tiramisu``.
43
44 Getting started
45 -------------------
46
47 Configuration option objects can be created in different ways. Let's perform 
48 very basic :class:`tiramisu.config.Config` object manipulations:
49
50 ::
51
52     >>> from tiramisu.config import Config
53     >>> from tiramisu.option import OptionDescription, BoolOption
54     >>> descr = OptionDescription("optgroup", "", [
55     ...     BoolOption("bool", "", default=False)])
56     >>>
57     >>> config = Config(descr)
58     >>> #┬ánow we have a config, wich contains an option:
59     >>> config.bool
60     False
61     >>> config.bool = True
62     >>> config.bool
63     True
64
65
66 So by now, we have
67
68 - a namespace (which is `config` here) 
69 - the access of an option's value by the
70   attribute access way (here `bool`, wich is a boolean option:
71   :class:`tiramisu.option.BoolOption()`.
72
73 Configuration option objects :class:`tiramisu.config.Config()` are produced at 
74 the entry points and handed down to where they are actually used. This keeps 
75 configuration local but available everywhere and consistent.