[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