[Devel-conf] Verborum Caterva

Alexey I. Froloff raorn на altlinux.org
Чт Апр 23 00:04:39 MSD 2009


* Pavel Wolneykien <manowar-u2l5PoMzF/Vg9hUCZPvPmw@> [090410 14:03]:
>   P.S. К разработке собирался присоединиться raorn@, и грозился
> переписать всё это на некоем libshell. Так что если кто-то ещё захочет
> сделать это, просьба сперва связаться с ним.
[не знаю, дойдёт или нет, пишу из горящего танк^W^W^Wчерез gmane]

Я его переписал чуть менее, чем полностью.  В общем оно сейчас
тупое как валенок.

Сканируется каталог шаблона.  Если нашли каталог, а в этом
каталоге только файлы - это шаблон файла и идём его генерировать.
Если нашли каталог, в котором тоже есть каталоги, обрабатваем его
рекурсивно.  Если нашли что-то ещё - с громкими криками его
пропускаем.

Для генерации файла из шаблона генерится скрипт.  Сначала пишется
шапка

CATERVA_VERBOSE=${verbose:+1}
CATERVA_TEMPLATE="$(quote_shell "$template")"

Потом разбираются non-option arguments переданные самой катерве и
если они в виде NAME=VALUE, то они тоже записываются в скрипт в
виде

ARG_NAME="VALUE"

Дальше, для каждого кусочка темплейта генерится либо команда "cat
имяфала", либо ". имяфайла" (последнее в случае если "кусочек"
исполняемый).

Рядом с генерируемым файлом создаётся временный.  Запускается
сгенерированный скрипт, его вывод перенаправляется во временный
файл.  Если генерируемый файл существовал, делается chown/chmod
--reference, потом mv временного файла в генерируемый (при этом
mv можно передать опции --backup и --suffix).

Вот эта схема решает задачу передачи каких-то данных в
скрипты-шаблончики и обмена данными между самими
скриптами-шаблончиками.

-- 
Regards,
Sir Raorn.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 197 байтов
Описание: Digital signature
Url     : <http://lists.altlinux.org/pipermail/devel-conf/attachments/20090422/99edc37d/attachment-0001.bin>


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