AutoGen - The Automated Program Generator: 7.10.3 Creating a sample configuration file

[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

### 7.10.3 Creating a sample configuration file

AutoOpts is shipped with a template named, ‘`rc-sample.tpl`’. If your option definition file specifies the `homerc` attribute, then you may invoke ‘`autogen`’ thus:

    autogen -Trc-sample <your-option-def-file>

This will, by default, produce a sample file named, ‘`sample-<prog-name>rc`’. It will be named differently if you specify your configuration (rc) file name with the `rcfile` attribute. In that case, the output file will be named, ‘`sample-<rcfile-name>`’. It will contain all of the program options not marked as `no-preset`. It will also include the text from the `doc` attribute.

Doing so with getdefs’ option definitions yields this sample-getdefsrc file. I tend to be wordy in my `doc` attributes:

    # getdefs sample configuration file
    # getdefs copyright 1999-2009 Bruce Korb - all rights reserved
    #
    # getdefs is free software: you can redistribute it and/or modify it
    # under the terms of the GNU General Public License as published by the
    # Free Software Foundation, either version 3 of the License, or
    # (at your option) any later version.
    #
    # getdefs is distributed in the hope that it will be useful, but
    # WITHOUT ANY WARRANTY; without even the implied warranty of
    # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    # See the GNU General Public License for more details.
    #
    # You should have received a copy of the GNU General Public License along
    # with this program.  If not, see <http://www.gnu.org/licenses/>.

    # defs_to_get -- Regexp to look for after the "/*="
    #
    # If you want definitions only from a particular category, or even
    # with names matching particular patterns, then specify this regular
    # expression for the text that must follow the @code{/*=}.
    # Example:
    #
    #defs_to_get	reg-ex

    # ordering -- Alphabetize or use named file
    #
    # By default, ordering is alphabetical by the entry name.  Use,
    # @code{no-ordering} if order is unimportant.  Use @code{ordering}
    # with no argument to order without case sensitivity.  Use
    # @code{ordering=<file-name>} if chronological order is important.
    # getdefs will maintain the text content of @code{file-name}.
    # @code{file-name} need not exist.
    # Example:
    #
    #ordering	file-name

    # first_index -- The first index to apply to groups
    #
    # This configuration value takes an integer number as its argument.
    #
    #
    # By default, the first occurrence of a named definition will have an
    # index of zero.  Sometimes, that needs to be a reserved value.  Provide
    # this option to specify a different starting point.
    # Example:
    #
    #first_index	0

    # input -- Input file to search for defs
    #
    # All files that are to be searched for definitions must be named on
    # the command line or read from @code{stdin}.  If there is only one
    # @code{input} option and it is the string, "-", then the input file
    # list is read from @code{stdin}.  If a command line argument is not
    # an option name and does not contain an assignment operator
    # (@code{=}), then it defaults to being an input file name.
    # At least one input file must be specified.
    # Example:
    #
    #input	src-file

    # subblock -- subblock definition names
    #
    # This option is used to create shorthand entries for nested definitions.
    # For example, with:
    # @table @r
    # @item using subblock thus
    # @code{--subblock=arg=argname,type,null}
    # @item and defining an @code{arg} thus
    # @code{arg: this, char *}
    # @item will then expand to:
    # @code{arg = @{ argname = this; type = "char *"; @};}
    # @end table
    # The "this, char *" string is separated at the commas, with the
    # white space removed.  You may use characters other than commas by
    # starting the value string with a punctuation character other than
    # a single or double quote character.  You may also omit intermediate
    # values by placing the commas next to each other with no intervening
    # white space.  For example, "+mumble++yes+" will expand to:
    # @*
    # @code{arg = @{ argname = mumble; null = "yes"; @};}.
    # Example:
    #
    #subblock	sub-def

    # listattr -- attribute with list of values
    #
    # This option is used to create shorthand entries for definitions
    # that generally appear several times.  That is, they tend to be
    # a list of values.  For example, with:
    # @*
    # @code{listattr=foo} defined, the text:
    # @*
    # @code{foo: this, is, a, multi-list} will then expand to:
    # @*
    # @code{foo = 'this', 'is', 'a', 'multi-list';}
    # @*
    # The texts are separated by the commas, with the
    # white space removed.  You may use characters other than commas by
    # starting the value string with a punctuation character other than
    # a single or double quote character.
    # Example:
    #
    #listattr	def

    # filelist -- Insert source file names into defs
    #
    # Inserts the name of each input file into the output definitions.
    # If no argument is supplied, the format will be:
    # @example
    # infile = '%s';
    # @end example
    # If an argument is supplied, that string will be used for the entry
    # name instead of @var{infile}.
    # Example:
    #
    #filelist	file

    # assign -- Global assignments
    #
    # The argument to each copy of this option will be inserted into
    # the output definitions, with only a semicolon attached.
    # Example:
    #
    #assign	ag-def

    # common_assign -- Assignments common to all blocks
    #
    # The argument to each copy of this option will be inserted into
    # each output definition, with only a semicolon attached.
    # Example:
    #
    #common_assign	ag-def

    # copy -- File(s) to copy into definitions
    #
    # The content of each file named by these options will be inserted into
    # the output definitions.
    # Example:
    #
    #copy	file

    # srcfile -- Insert source file name into each def
    #
    # Inserts the name of the input file where a definition was found
    # into the output definition.
    # If no argument is supplied, the format will be:
    # @example
    # srcfile = '%s';
    # @end example
    # If an argument is supplied, that string will be used for the entry
    # name instead of @var{srcfile}.
    # Example:
    #
    #srcfile	file

    # linenum -- Insert source line number into each def
    #
    # Inserts the line number in the input file where a definition
    # was found into the output definition.
    # If no argument is supplied, the format will be:
    # @example
    # linenum = '%s';
    # @end example
    # If an argument is supplied, that string will be used for the entry
    # name instead of @var{linenum}.
    # Example:
    #
    #linenum	def-name

    # output -- Output file to open
    #
    # If you are not sending the output to an AutoGen process,
    # you may name an output file instead.
    # Example:
    #
    #output	file

    # autogen -- Invoke AutoGen with defs
    #
    # This is the default output mode.  Specifying @code{no-autogen} is
    # equivalent to @code{output=-}.  If you supply an argument to this
    # option, that program will be started as if it were AutoGen and
    # its standard in will be set to the output definitions of this program.
    # Example:
    #
    #autogen	ag-cmd

    # template -- Template Name
    #
    # Specifies the template name to be used for generating the final output.
    # Example:
    #
    #template	file

    # agarg -- AutoGen Argument
    #
    # This is a pass-through argument.  It allows you to specify any
    # arbitrary argument to be passed to AutoGen.
    # Example:
    #
    #agarg	ag-opt

    # base_name -- Base name for output file(s)
    #
    # When output is going to AutoGen, a base name must either be supplied
    # or derived.  If this option is not supplied, then it is taken from
    # the @code{template} option.  If that is not provided either, then
    # it is set to the base name of the current directory.
    # Example:
    #
    #base_name	name

[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

This document was generated by Bruce Korb on June 25, 2010 using texi2html 1.82.