* 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.
signature.asc
Description: Digital signature
_______________________________________________ devel-conf mailing list [email protected] https://lists.altlinux.org/mailman/listinfo/devel-conf
