Это старая версия документа!
Всё про шаблоны в Кальке
Шаблоны в Calculate Linux являются крайне мощным и удобным инструментом по автоматическому напилингу системы. Одна бяда — они ужасно плохо документированы!!! Здесь будет собираться всё, что мне так или иначе получится накопать на эту тему.
Правильные ссылки
Встроенные переменные Calculate 2.2
Введение в шаблоны Calculate 2.2 часть 1
Введение в шаблоны Calculate 2.2 часть 2
Расположение на файловой системе
/var/db/repos/calculate/profiles/templates/
— системные шаблоны (тут надо искать образцы для подрожания).
/var/calculate/templates/
— локальные шаблоны (сюда сваливаем собственные шаблоны).
Формат заголовка
Заголовок располагается в первой строке файла и начинается с magic-sequense # Calculate
. После заголовка в этой же строке идёт набор параметров. Эти параметры указывают, как должен обрабатываться файл шаблона, куда будет складываться результат работы и т.п.
Параметры могут иметь вид имя_параметра=значение
или имя_параметра
(т.е. «флаговый» параметр, не имеющий значения)
Наиболее ходовые параметры, которые я использую в своих шаблонах:
- format - задаётся формат файла шаблона. Согласно документации допустимы следующие форматы:
- apache, kde, bind, postfix, proftpd, samba, procmail, ldap, dovecot, xml_xfce, xml_xfcepanel, xml_gconf, xml_gconf_tree, compiz, plasma, squid, dhcp, openrc, kernel, json, world - форматы файлов настроек распространенных приложений
- bin - двоичный формат файлов
- raw - сырой текст
- patch - шаблон для применения регулярных выражений (использует специальный вид объединения patch).
- diff - шаблон для наложения патчей, полученных командой diff
- dconf - файл модификации настроек в пользовательской службе dconf
- ldif - формат представления записей службы каталогов или их изменений в текстовой форме
- contents - специализированный формат для изменения принадлежности файлов пакетам
- backgrounds - специализированный формат для создания фоновых изображений
- path - указывает директорию, где будет лежать результирующий файл
- name - имя результирующего файла
- append - режим слияния шаблона и имеющегося файла. Режим поумолчанию зависит от формата шаблона. Возможные значения:
- join - объединяет файлы. Например, если в исходном конфиге и в шаблоне задаётся значение одной и той же переменной, то в результат пойдёт строка из шаблона, и расположена она будет там же, где была расположена строка в исходном конфиге. Если в шаблоне есть строки, для которых нет соответствующих строк в исходном конфиге, то строки из шаблона будут дописаны в конец результирующего файла. (См. шаблон для main.cf postfix'а)
- before - вставляет содержимое шаблона в начало результата.
- after - дописывает содержимое шаблона в конец результата.
- replace - заменяет содержимое исходного файла на содержимое шаблона. (Это поведение поумолчанию, есди формат не указан.)
- remove - удаляет указанный файл из системы (См. шаблон для phpX.Y/fpm.d/www.conf)
- skip - шаблон пропускается. Удобно для «хранения» редко используемых настроек в общей коллекции шаблонов. (См. шаблон для NTP-серверов)
- patch - шаблон для модификации файлов по регулярным выражениям. (См. шаблон для logrotate.conf)
- clear - если шаблон описывает файл, его содержимое удалится (размер == 0). Если это шаблон директории, её содержимое (волженные файлы и директории) будет удалено.
- diff - шаблон наложения патчей, полученных ранее командой diff (См. шаблон для dovecot)
- link - путь к конфигурационному файлу, с которым объединяется файл шаблона.
- symbolic - создаёт символическую ссылку на файл, указанный параметром «link». Имя симлинка собирается из path и name.
- chmod -
- chown - задание прав доступа и владельца
- условие - задаёт условие (возможно составное) на применение шаблона.
Есть ещё некоторое количество параметров, которые я не использую, и своего мнения на их счёт не имею.