DOKK / manpages / debian 10 / debconf-doc / confmodule.3.ru
CONFMODULE(3) Library Functions Manual CONFMODULE(3)

НАЗВАНИЕ

confmodule - связь с интерфейсом системы настройки Debian.

СИНТАКСИС


#!/bin/sh -e
. /usr/share/debconf/confmodule
db_version 2.0
db_capb 'backup'
CAPB=$RET
db_input 'foo/bar' || true
db_go || true

ОПИСАНИЕ

Это библиотека функций на языке оболочки командной строки, которая позволяет легко взаимодействовать с системой управления настройкой Debian. Она может взаимодействовать с интерфейсной программой через debconf протокол. Конструкция библиотеки такова, что каждая команда в протоколе представлена одной функцией. Имя функции совпадает с названием команды, если не считать префикс «db_» и записи строчными буквами. При вызове функции передаются любые параметры, те же что и у команды. Любой текстовый возвращаемый интерфейсной программой код будет возвращён в переменной $RET, а числовой возвращаемый интерфейсной программой код будет возвращён как код завершения (и эти возвращаемые коды должны быть сохранены или проигнорированы).

ЗАМЕЧАНИЯ

После того, как библиотека загружена, все последующие выходные данные будут перенаправлены в стандартный поток ошибок, а не в стандартный выходной поток. В общем, это хорошо, так как текст посылаемый в стандартный вывод, воспринимается интерфейсной программой как команды. Если вы хотите послать команду интерфейсной программе напрямую, то нужно выдать её в файловый дескриптор 3, например:
echo GET foo/bar >&3

Библиотека проверяет, что запущена именно интерфейсная программа, просматривая переменную окружения DEBIAN_HAS_FRONTEND. Если она установлена, то предполагается, что запущена интерфейсная программа. Если нет, то библиотека запускает одну из интерфейсных программ и выполняет копию сценария, который загрузил библиотеку, подключая его к интерфейсной программе. Это означает, что если источник библиотека, то вы должны выполнить её в сценарии как можно раньше, так как всё до загрузки библиотеки может выполниться ещё раз.

СМОТРИТЕ ТАКЖЕ

debconf-devel(7), dpkg-preconfigure(8), dpkg-reconfigure(8), debconf_specification из пакета debian-policy

АВТОР

Joey Hess <joeyh@debian.org>