NAME
build-config - convert a subsectional configuration to hash strings
SYNOPSIS
usage: build-config.pl [options] file
OPTIONS
-t string string identifier
-h output usage
-V version info
DATA FORMAT
INPUT
- Overall
-
To gain knowledge on how the configuration principle works, you might have a look at the supplied user configuration. It is vital to understand, that the level (declared by $level) and the identifier (declared by $identifier) are essential factors on the creation of keys within a hash string.
Lines beginning with a leading # and no following $ are not essential for the parsing process, but keep the visual and cognitive structure upright.
Lines beginning with a leading # and a following $ are vital to the process of data parsing.
Lines beginning with alphanumeric characters equal key/value entries.
# ============================= # SECTION: directories # ============================= # INDEX: D.1 # ============================= # # Description: # °°°°°°°°°°°° # Includes paths concerning # your directories. # ######## #$level=1 #$identifier=dir ############# #-------------------- # Path: log directory #-------------------- log = /var/log
An overall appearance of a section entry and assigned key/value entry.
- Structure/Index
-
# ============================= # SECTION: directories # ============================= # INDEX: D.1 # =============================
Classifies the section level (SECTION, SUBSECTION, SUBSUBSECTION), the identifier of the section, its index level which consists of the first capitalized character of the section identifer and an integer from 1 - 3.
[ 1 = SECTION, 2 = SUBSECTION, 3 = SUBSUBSECTION ]
- Section description
-
# Description: # °°°°°°°°°°°° # Includes paths concerning # your directories.
A short section description.
- Internal flags
-
#$level=1 #$identifier=dir
The flags which are of interest to the build script. $level sets the section level, $identifier sets an alphanumeric identifier.
- Entry comment
-
#-------------------- # Path: log directory #--------------------
- Key/Value
-
log = /var/log
The value on the left side functions as key, while the the value on the right functions as value.
OUTPUT
- Example
-
An example hash string will look as following:
$Data{config}{dir}{log} = '/var/log';
- Parsing process
-
The parsing process follows a sequentiell logic.
The structure tree
| + Level - 1 | ++ Level - 2 -------------- | + Level - 1 | ++ Level - 2 | +++ Level - 3 -------------- | + Level - 1
is valid, while
| + Level - 1 | +++ Level - 3
proves to be invalid.
Ascending in level deepness allows skipping of levels, whereas descending in level deepness requires that accordingly no level is skipped.
- Hash string format
-
A "level 1" hash string:
$Data{config}{dir}{log} = '/var/log';
A "level 2" hash string:
$Data{config}{file}{system}{log} = '/etc/syslog.conf';
A "level 3" hash string:
$Data{config}{file}{system}{user}{entries} = '/etc/master.passwd';
The last two values, in this case 'entries' & '/etc/master.passwd' correspond to the key & value pair, while the leading parts are determined by an internal CONSTANT ( $Data{config} ) and three subsequent level identifiers.
- Classification
-
internal CONSTANT: $Data{config} Level 1 - identifier: file Level 2 - identifier: system Level 3 - identifier: user Key: entries Value: /etc/master.passwd
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 142:
Non-ASCII character seen before =encoding in '°°°°°°°°°°°°'. Assuming CP1252