1 \subsubsection{Structure of the configuration files
}
3 The config files are divided into sections and options/values.
5 Every section has a type, but does not necessarily have a name.
6 Every option has a name and a value and is assigned to the section
12 config <type>
[<name>
] # Section
13 option <name> <value> # Option
16 Every parameter needs to be a single string and is formatted exactly
17 like a parameter for a shell function. The same rules for Quoting and
18 special characters also apply, as it is parsed by the shell.
20 \subsubsection{Parsing configuration files in custom scripts
}
22 To be able to load configuration files, you need to include the common
29 Then you can use
\texttt{config
\_load \textit{<name>
}} to load config files. The function
30 first checks for
\textit{<name>
} as absolute filename and falls back to loading
31 it from
\texttt{/etc/config
} (which is the most common way of using it).
33 If you want to use special callbacks for sections and/or options, you
34 need to define the following shell functions before running
\texttt{config
\_load}
35 (after including
\texttt{/etc/functions.sh
}):
41 # commands to be run for every section
45 # commands to be run for every option
49 You can also alter
\texttt{option
\_cb} from
\texttt{config
\_cb} based on the section type.
50 This allows you to process every single config section based on its type
53 \texttt{config
\_cb} is run every time a new section starts (before options are being
54 processed). You can access the last section through the
\texttt{CONFIG
\_SECTION}
55 variable. Also an extra call to
\texttt{config
\_cb} (without a new section) is generated
56 after
\texttt{config
\_load} is done.
57 That allows you to process sections both before and after all options were
60 You can access already processed options with the
\texttt{config
\_get} command
64 config_get <section> <option> # prints the value of the option
65 config_get <variable> <section> <option> # stores the value inside the variable
68 In busybox ash the three-option
\texttt{config
\_get} is faster, because it does not
69 result in an extra fork, so it is the preferred way.
71 Additionally you can also modify or add options to sections by using the
72 \texttt{config
\_set} command.
77 config_set <section> <option> <value>