VERSION
number
This exchanges with the frontend the protocol version number that is
being used. The current version is 2.1. Versions in the 2.x series
will be backwards-compatible. You may specify the protocol version
number you are speaking. The frontend will return the version of the
protocol it speaks. If the version you specify is too low, this
command will return the numeric return code 30.
CAPB
capabilities
This exchanges with the frontend a list of supported capabilities
Capabilities both the frontend and your confmodule support may be
used; the capabilities supported by the frontend are returned by
this command.
Currently used capabilities
capability
description
backup
Backing up to a previous step is supported.
escape
The frontend expects commands sent to it to have
backslashes and newlines quoted as \\
and \n respectively and will in turn
quote backslashes and newlines in its replies. See
debconf-escape
1.
multiselect
The multiselect data type is supported. You do not need to
check this capability if you depend on any modern version
of debconf.
SETTITLE
template
You can use this command to set a title in the frontend. This may
appear in different ways, depending on the frontend being used, for
example it might change the title of the frontend's window. If you
don't specify anything, a title will automatically be generated.
Using a template has the advantage that titles are translatable and
that they can be maintained in the same place as other text
displayed to users.
TITLE
string
Similar to SETTITLE, but takes a string instead of a template as
parameter. Consequence is that the title will not be translatable,
unless some other mechanism (like gettext) is used.
STOP
This command tells the frontend you're done talking to it. Typically
the frontend can detect the termination of your program and this
command is not necessary.
INPUT
priority
question
This tells the frontend to display a question (or other type of
item) to the user. question is the name of
the item to display, all other information about the item is
retrieved from the templates described previously.
priority is how important it is that the user
be prompted. The frontend need only ask this question if the
priority is high enough. The question is not displayed until a go
command is given. This allows us to ask multiple questions in a
single screen. Once a question has been displayed to the user and
the user has provided input, the frontend will set the
seen flag.
&priority_table;
Note that the frontend decides if the user is actually prompted or
not. If the user has already answered a question, they are normally
not asked it again even if input is called again. And if the user is
ignoring low priority items, they will not see them. In either of
these cases, this command returns the numeric return code
30.
BEGINBLOCK
ENDBLOCK
Some frontends are able to display a number of items to the user at
once. To do this, they need to be given blocks of input commands,
enclosed in the BEGINBLOCK and ENDBLOCK commands. Blocks can be
nested and very advanced frontends may use this as a user interface
hint.
There is an implicit block around any set of INPUT commands that
are not enclosed in an explicit block.
GO
Shows the current set of accumulated items to the user and lets them
fill in values, etc. If the backup capability is supported and the
user indicates they want to back up a step, this command returns the
numeric return code 30.
CLEAR
Clears the accumulated set of INPUT commands without displaying them
to the user.
GET question
Ask the frontend to tell you how the user answered a question. The
value is returned to you.
SET
question
value
Set the answer of a question to a value.
RESET question
Reset the question to its default value. This includes resetting
flags to their defaults.
SUBST
question
key
value
Questions (and other items) can have substitutions embedded in their
descriptions (and, currently in their choices fields). These
substitutions look like "${key}". When the
question is displayed, the substitutions are replaced with their
values. This command can be used to set the value of a substitution.
FGET
question
flag
Questions (and other items) can have flags associated with them. The
flags have a value of "true" or
"false". This command returns the value of a
flag.
FSET
question
flag
value
This sets the state of a flag on a question. Valid states for the
flag are "true" and "false".
One common flag is the "seen" flag. It is
normally only set if a user already seen a question. Typically,
frontends only display questions to users if they have the seen flag
set to "false". Sometimes you want the user to see a question again
-- in these cases you can set the seen flag to false to force the
frontend to redisplay it.
Note that as a special convenience behavior, frontends will
redisplay already seen questions if the question was first seen by
the user in the same confmodule run. This makes it easy for a
confmodule to back up to previous questions without having to reset
the seen flag.
METAGET
question
field
This returns the value of any field of a question (the description,
for example).
REGISTER
template
question
This creates a new question that is bound to a template. By default
each template has an associated question with the same
name. However, any number of questions can really be associated with
a template, and this lets you create more such questions.
UNREGISTER
question
This removes a question from the database.
PURGE
Call this in your postrm when your package is purged. It removes all
templates and questions your package has generated.