[devel] control и multi-line regexp

Afanasov Dmitry ender на altlinux.org
Вс Май 24 15:43:06 MSD 2009


On Sun, May 24, 2009 at 02:49:18PM +0400, Max Ivanov wrote:
> Возникла задачка поуправлять через control параметром в ini файле,
> причем только в одной его секции (параметр с тем же именем есть во
> многих). Для этого необходим многоуровневый regexp, как его
> реализовать в egrep я не нашел =(  Как быть?
control тупо запускает этот facility, передавая ему параметры. вся shell
машинерия только для удобства их обработки.

хорошо проверяется по sh -x /usr/sbin/control postfix <cmd>
postfix для примера

требования к скрипту facility:
$FACILITY list      - вывод списка фасилитей (для postfix: local server filter)
$FACILITY status    - текущее состояние (в моем случае: local)
$FACILITY summary   - вывод summary
$FACILITY           - текущее состояние, как и в status
$FACILITY <что угодно> - установить состояние в <что угодно>. вывод не
обязателен, exit по состоянию

простейший пример фасилити:

#!/bin/sh

[ -f "/tmp/test" ] || echo local > "/tmp/test"

case $1 in
        list) 
        echo local remote
        ;;
        ''|status)
        cat "/tmp/test"
        ;;
        summary)
        echo "Test script facility"
        ;;
        local|remote)
        echo $1 > "/tmp/test"
        ;;
        *)
        echo unknown command "$1"
        exit 1
        ;;
esac

делает только одно - пишет и читает из /tmp/test статус.
-- 
 С уважением
 Афанасов Дмитрий
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 198 байтов
Описание: Digital signature
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20090524/8a4ef619/attachment-0001.bin>


Подробная информация о списке рассылки Devel