diff options
Diffstat (limited to 'docs/config.tex')
-rw-r--r-- | docs/config.tex | 101 |
1 files changed, 0 insertions, 101 deletions
diff --git a/docs/config.tex b/docs/config.tex deleted file mode 100644 index 08318b4b6c..0000000000 --- a/docs/config.tex +++ /dev/null @@ -1,101 +0,0 @@ -\subsubsection{Structure of the configuration files} - -The config files are divided into sections and options/values. - -Every section has a type, but does not necessarily have a name. -Every option has a name and a value and is assigned to the section -it was written under. - -Syntax: - -\begin{Verbatim} -config <type> ["<name>"] # Section - option <name> "<value>" # Option -\end{Verbatim} - -Every parameter needs to be a single string and is formatted exactly -like a parameter for a shell function. The same rules for Quoting and -special characters also apply, as it is parsed by the shell. - -\subsubsection{Parsing configuration files in custom scripts} - -To be able to load configuration files, you need to include the common -functions with: - -\begin{Verbatim} -. /lib/functions.sh -\end{Verbatim} - -Then you can use \texttt{config\_load \textit{<name>}} to load config files. The function -first checks for \textit{<name>} as absolute filename and falls back to loading -it from \texttt{/etc/config} (which is the most common way of using it). - -If you want to use special callbacks for sections and/or options, you -need to define the following shell functions before running \texttt{config\_load} -(after including \texttt{/lib/functions.sh}): - -\begin{Verbatim} -config_cb() { - local type="$1" - local name="$2" - # commands to be run for every section -} - -option_cb() { - # commands to be run for every option -} -\end{Verbatim} - -You can also alter \texttt{option\_cb} from \texttt{config\_cb} based on the section type. -This allows you to process every single config section based on its type -individually. - -\texttt{config\_cb} is run every time a new section starts (before options are being -processed). You can access the last section through the \texttt{CONFIG\_SECTION} -variable. Also an extra call to \texttt{config\_cb} (without a new section) is generated -after \texttt{config\_load} is done. -That allows you to process sections both before and after all options were -processed. - -Another way of iterating on config sections is using the \texttt{config\_foreach} command. - -Syntax: -\begin{Verbatim} -config_foreach <function name> [<sectiontype>] [<arguments...>] -\end{Verbatim} - -This command will run the supplied function for every single config section in the currently -loaded config. The section name will be passed to the function as argument 1. -If the section type is added to the command line, the function will only be called for -sections of the given type. - - -You can access already processed options with the \texttt{config\_get} command -Syntax: - -\begin{Verbatim} -# print the value of the option -config_get <section> <option> - -# store the value inside the variable -config_get <variable> <section> <option> -\end{Verbatim} - -In busybox ash the three-option \texttt{config\_get} is faster, because it does not -result in an extra fork, so it is the preferred way. - -Additionally you can also modify or add options to sections by using the -\texttt{config\_set} command. - -Syntax: - -\begin{Verbatim} -config_set <section> <option> <value> -\end{Verbatim} - -If a config section is unnamed, an automatically generated name will -be assigned internally, e.g. \texttt{cfg1}, \texttt{cfg2}, ... - -While it is possible, using unnamed sections through these autogenerated names is -strongly discouraged. Use callbacks or \texttt{config\_foreach} instead. - |