Codebase list cdebconf / 15a5e77d-da12-445a-9a9f-753fc896999d/main doc / confmodule.txt
15a5e77d-da12-445a-9a9f-753fc896999d/main

Tree @15a5e77d-da12-445a-9a9f-753fc896999d/main (Download .tar.gz)

confmodule.txt @15a5e77d-da12-445a-9a9f-753fc896999d/mainraw · history · blame

Most clients can be written quite simply with shell or Perl.

Shell-script based clients
~~~~~~~~~~~~~~~~~~~~~~~~~~
Shell-script based debconf clients should source the confmodule support
library, /usr/share/debconf/confmodule by default.

Use of the shell confmodule library is described in the debconf
documentation.

Perl based clients
~~~~~~~~~~~~~~~~~~
/* to be added, need to modify ConfModule.pm */

C based clients
~~~~~~~~~~~~~~~
libdebconf has some simple support functions for C based clients;
the API is pretty simple:

#include <debconfclient.h>

struct debconfclient *client = debconfclient_new();
client->command(client, "INPUT", "low", "foo/bar", NULL);
myvar = client->value;
(or myvar = client->ret(client); )
/* ... */
debconfclient_delete(client);

the command method takes a NULL-terminated list of arguments to pass
to the confmodule. The result is stored in client->value;

File descriptors
~~~~~~~~~~~~~~~~
cdebconf opens some additional fds for the confmodule. Actually they are:
- 4: original stdin, defined as DEBCONF_OLD_STDIN_FD
- 5: original stdout, defined as DEBCONF_OLD_STDOUT_FD

Packages which want to call a console application may use them.