Debconf::Client::ConfModule -
клиентский
модуль для
ConfModules
use Debconf::Client::ConfModule ':all';
version('2.0');
my $capb=capb('backup');
input("medium", "foo/bar");
my @ret=go();
if ($ret[0] == 30) {
# Нажата кнопка Назад.
...
}
...
Этот
модуль
служит для
облегчения
написания
ConfModules для
системы
управления
настройками
Debian. Он может
взаимодействовать
с
интерфейсной
программой
по
протоколу
debconf (который
полностью
описан в
debconf_specification в
политике Debian).
По замыслу,
каждая
команда
протокола
представляется
одной
функцией в
этом
модуле (с
именем из
строчных
букв).
Вызовите
функцию и
передайте
ей любые
параметры,
которые вы
хотели бы
передать
команде.
Если
функция
вызывается
в
скалярном
контексте,
она
возвращает
текстовый
код
возврата.
Если
функция
вызывается
в
списочном
контексте,
то она
возвращает
массив,
состоящий
из
числового
кода
возврата и
текстового
кода
возврата.
Этот
модуль
использует
Exporter для
экспорта
всех
объявленных
функций.
Чтобы
импортировать
всё —
просто import ":all".
- import
- Гарантирует,
что
интерфейс
запущен.
Написано
слегка
грязно.
Если
установлена
переменная
DEBIAN_HAS_FRONTEND, то
предполагается
что
интерфейс
запущен.
Если нет,
то он
запускается
автоматически
и
выполняется
подключение
к его вводу
и выводу.
Заметим,
что эта
функция
всегда
выполняется
при
загрузке
модуля
обычным
путём.
- stop
- В этой
ситуации
интерфейс
не
посылает
код
завершения,
поэтому мы
не можем
даже
пытаться
прочитать
его или
заблокируемся.
- AUTOLOAD
- Создаёт
на лету
обработчик
функций
для
команд.
Спецификация
debconf (/usr/share/doc/debian-policy/debconf_specification.txt.gz).
Joey Hess <
[email protected]>