chiark / gitweb /
Import release 0.05
[secnet.git] / README
1 XXX under construction. For now, here are the comments that used to be
2 at the top of the example configuration file:
3
4 # This file defines a dictionary full of configuration information for
5 # secnet. Two keys must be defined in this file for secnet to
6 # start. One is "system", a dictionary containing systemwide control
7 # parameters. The other is "sites", a list of all the sites that you
8 # intend to communicate with.
9
10 # Other files can be included inline by writing "include filename" at
11 # the start of a line.
12
13 # The configuration file has a fairly simple syntax:
14 # key definition;  or key = definition; (the "=" is optional)
15 # ...sets 'key' in the current dictionary to 'definition'.
16
17 # "key" is [[:alpha:]_][[:alnum:]\-_]*
18
19 # definition may be one of the following:
20 #  a string, in quotes
21 #  a number, in decimal
22 #  a dictionary, in { }
23 #  a path to a key that already exists, to reference that definition
24 #  a "closure", followed by arguments
25 #
26 # paths are key1/key2/key3... (starting from wherever we find key1, i.e. in
27 #  the current dictionary or any of its parents)
28 # alternatively /key1/key2/key3... (to start from the root)
29
30 # closures are followed by an argument list in ( ), and may return
31 # whatever type they like (including other closures)
32 #
33 # closure { definitions } is short for closure({definitions}).
34 #
35 # Whenever secnet looks for a key it checks the (lexical) parent dictionaries
36 # as well until it finds it or reaches the root. This is useful for setting
37 # defaults for large collections of dictionaries (eg. defining sites).
38 #
39 # It is also permissible to list other dictionaries before a dictionary
40 # definition, eg. <defaults,otherdefaults>{definitions}. These will be
41 # searched in order for keys, before the lexical parent. (Not yet implemented)
42
43 # secnet predefines some keys in the root dictionary; some useful ones are:
44 #  yes, true, True, TRUE:   the boolean value True
45 #  no, false, False, FALSE: the boolean value False
46 #  makelist:   turns a dictionary (arg1) into a list (return value)
47 #  readfile:   reads a file (arg1) and returns it as a string
48 #
49 # secnet modules also predefine keys, eg. "adns", "randomfile", etc.
50 # See the module documentation for more information.
51
52 # After the configuration file is read, secnet looks for particular keys
53 # in configuration space to tell it what to do:
54 #  system:     system-wide parameters (control, logging, etc.)
55 #  sites:      a list of sites with which to communicate