[ < ] [ > ]   [ << ] [ 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
## This source file is copyrighted and licensed under the following terms:
#
#  Copyright (C) 1999-2014 Bruce Korb, all rights reserved.
#  This is free software. It is licensed for use, modification and
#  redistribution under the terms of the GNU General Public License,
#  version 3 or later <http://gnu.org/licenses/gpl.html>
#
#  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

# 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

# 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

# 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

# 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

# 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 August 21, 2015 using texi2html 1.82.