eximpp - Exim configuration file preprocessor.
eximpp [-?] [-3] [-4] [-o <output>] [-I <include path>] ... [--<var>=<val>] ... <file> ...
This Perl script generates a configuration file for Exim (<http://www.exim.org>) from several input files. It recognizes some preprocess directives, and provides standard preprocessor features -- inclusion of other files and conditional setup.
eximpp (14KB, 2019-02-28 13:42:20)is the latest version.
This script accept following command line options.
Specifies to generate configuration file for Exim 3 or prior.
Specifies to generate configuration file for Exim 4 or later.
Specifies the output file.
Add include directory to the search path of input files.
Displays one line short help, and then exits.
Assigns the value value to the variable with the name variable name.
Most lines in input files are copied to output without any changes, but
each line with '#'
at the beginning of the line, followed by optional spaces and one of the
following keywords -- preprocessor directives -- with some arguments, is
treated in a special manner.
All the keywords are case sensitive.
Contents of the file file name is inserted into the output, after preprocessing. Note that file name is used after being evaluated as a Perl expression.
section name must be one of the following words, each of which corresponds to each part of Exim configuration file:
In Exim 3 or prior, what is configured by a configuration item is strictly determined by which part the item belongs to. Even in Exim 4, contents of each section must be contiguous. The above 2 directives relaxes this feature, that is, the lines between the directives are kept in memory, and are inserted into the corresponding part of output after preprocessing.
If the optional _
a word
(one underscore and a word) is specified, the lines are inserted into the place at which
#LABEL a word directive below appears.
...
If condition0 generates a true value as a Perl expression, the lines until next #ELSIF, #ELSE, or #END IF line are inserted into output after preprocessing, else if condition1 generates a true value as a Perl expression, the lines until next #ELSIF, #ELSE, or #END IF line are inserted into output after preprocessing, ... and so on. If none
of condition0
... conditionN
generates a true value, the lines between #ELSE line and #END IF line are inserted into output after preprocessing.
#ELSIF and #ELSE are optional.
Defines a label for #BEGIN directive.
Exim aborts when it finds a duplicate setting. This preprocessor relaxes this feature.
If the preprocessor finds a duplicate main configuration setting, or a option setting of transport, director, or router, it overrides the old setting with new one.
If it find a duplicate specification of transport, director, or router driver, it removes the old specification, and processes the new specification as if old one didn't apear at all.
But if new specification has the form driver name:
a word, this default behavior may be changed.
a word must be one of the following words, and is case sensitive.
The succeeding settings of the driver override those of the old one, that is, the old settings are removed, and then new settings are inserted into the place at which the old ones were.
Old settings are removed.
Explicitly specifies default behavior.
Kiyokazu SUTO <suto@ks-and-ks.ne.jp>
Any questions or comments about this page are greatly appreciated.
Almost all contents in this site are written by Kiyokazu SUTO (i.e. me) unless especially noted. I want to put all of them into the PUBLIC DOMAIN, even though some lawyers mention that it is impossible in my country.