DOKK / manpages / debian 11 / debconf-doc / Debconf::Client::ConfModule.3.en
..::Debconf::Client::ConfModule(3) Debconf ..::Debconf::Client::ConfModule(3)

Debconf::Client::ConfModule - client module for ConfModules

 use Debconf::Client::ConfModule ':all';
 version('2.0');
 my $capb=capb('backup');
 input("medium", "foo/bar");
 my @ret=go();
 if ($ret[0] == 30) {
        # Back button pressed.
        ...
 }
 ...

This is a module to ease writing ConfModules for Debian's configuration management system. It can communicate with a FrontEnd via the debconf protocol (which is documented in full in the debconf_specification in Debian policy).

The design is that each command in the protocol is represented by one function in this module (with the name lower-cased). Call the function and pass in any parameters you want to follow the command. If the function is called in scalar context, it will return any textual return code. If it is called in list context, an array consisting of the numeric return code and the textual return code will be returned.

This module uses Exporter to export all functions it defines. To import everything, simply import ":all".

Ensure that a FrontEnd is running. It's a little hackish. If DEBIAN_HAS_FRONTEND is set, a FrontEnd is assumed to be running. If not, one is started up automatically and stdin and out are connected to it. Note that this function is always run when the module is loaded in the usual way.
The frontend doesn't send a return code here, so we cannot try to read it or we'll block.
Creates handler functions for commands on the fly.

The debconf specification (/usr/share/doc/debian-policy/debconf_specification.txt.gz).

Joey Hess <joeyh@debian.org>

2021-06-10