X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;ds=sidebyside;f=ucw%2Fdoc%2Fconfig.txt;h=52598016236f22e60ad736fb4f21652f6601f0bb;hb=1481eca416a467e9952dbc5e4852afe66eaf1256;hp=4672ee3d2c7eab52b42b2e854ecadcda02196a3f;hpb=d353c2a2c76a432f089adff3d937167d10e67611;p=libucw.git diff --git a/ucw/doc/config.txt b/ucw/doc/config.txt index 4672ee3d..52598016 100644 --- a/ucw/doc/config.txt +++ b/ucw/doc/config.txt @@ -1,9 +1,11 @@ Configuration files =================== -This document describes run-time configuration of UCW using -config files. For compile-time configuration, see doc/configure. +This document describes run-time configuration of libucw-based +programs using config files. For compile-time configuration, +see <>. +[[terminology]] Terminology ----------- @@ -34,6 +36,7 @@ type. The basic types supported by the configuration mechanism are: Program modules can define their own special types (such as network masks or attribute names) and decide how are they parsed. +[[format]] Format of configuration files ----------------------------- @@ -64,6 +67,8 @@ assignment commands: Numerical values can be succeeded by a unit. The following units are supported: +[[units]] + d=86400 k=1000 K=1024 h=3600 m=1000000 M=1048576 %=0.01 g=1000000000 G=1073741824 @@ -105,6 +110,8 @@ Lists support several operations besides adding a new node. You just have to write a colon immediately after the attribute name, followed by the name of the operation. The following operations are supported: +[[operations]] + List:clear # removes all nodes List:append { attr1=value1; ... } # adds a new node at the end List:prepend { attr1=value1; ... } # adds a new node at the beginning @@ -114,6 +121,7 @@ the name of the operation. The following operations are supported: List:after { attr1=search1 } { ... } # insert a node after a found node List:before { attr1=search1 } { ... } # insert a node before a found node List:copy { attr1=search1 } { ... } # duplicate a node and edit the copy + List:reset { attr=value1; ... } # equivalent to :clear and :append You can specify several attributes in the search condition and the nodes are tested for equality in all these attributes. In the editing @@ -122,17 +130,24 @@ or specify the new values using the shorter one-line syntax. The commands :clear, :append, and :prepend are also supported by var-length arrays. The command :clear can also be used on string values. The following -operations can be used on bitmaps: :set, :remove, :clear, and :all. +operations can be used on bitmaps: :set (which is equal to :append and :prepend), +:remove, :clear, and :all (set all bits). +[[include]] Including other files --------------------- To include another file, use the command - include another/file + Include another/file + +or if the file needs not to exist + + OptionalInclude another/file (Beware that this command has to be the last one on the line.) +[[command_line]] Command-line parameters ----------------------- @@ -153,19 +168,22 @@ items and exits. All these switches must be used before any other parameters of the program. +[[preprocess]] Preprocessing ------------- During compilation, all configuration files are pre-processed by a simple C-like preprocessor, which supports `#ifdef`, `#ifndef`, `#if`, `#elsif`, `#else` and `#endif` directives referring to compile-time -configuration variables. `#if` and `#elsif` can contain any Perl expression -where each `CONFIG_xyz` configuration variable is substituted to 0 or 1 -depending on its value. +configuration variables (the ones detected by `configure` script, you +can see list of them in `obj/autoconf.h`). `#if` and `#elsif` can contain +any Perl expression where each `CONFIG_xyz` configuration variable is +substituted to 0 or 1 depending on its value. The preprocessor also substitutes `@VARIABLE@` by the value of the variable, which must be defined. +[[caveats]] Caveats -------