* 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 devel-conf@lists.altlinux.org https://lists.altlinux.org/mailman/listinfo/devel-conf