Документация Calculate Linux

Вид материалаДокументы

Содержание


Управляющие элементы
Стек переменных функций шаблонов.
Подобный материал:
1   ...   75   76   77   78   79   80   81   82   ...   136

Управляющие элементы


Помимо настроек сервисов, записанных в оригинальном формате программы, файлы шаблонов содержат служебные записи, которые условно можно разделить на несколько типов.

Переменная


Переменная - текстовый элемент в шаблоне имеющий имя, который заменяется в соответствующем конфигурационном файле значением.

Переменная имеет имя, значение, область действия.
  • имя - латинские буквы и цифры
  • значение - текст для замены (создается в программе)
  • область действия - действует для всех шаблонов глобально, или локально для одного

Переменные подразделяются на переменные шаблонов и переменные функций.

У переменных шаблонов глобальная область действия, то есть любая переменная шаблона доступная программе может быть использована в любом шаблоне. Значение переменной нельзя изменить в шаблоне.

Переменные функций могут быть созданы в шаблоне, так же можно изменить значение переменной в шаблоне. Область действия переменной функции текущий шаблон.

Для передачи значений переменных функций из текущего шаблона в другой шаблон, используется стек переменных функций шаблонов (LIFO), в который при помощи функции шаблонов push() записывается значение из текущего шаблона, а функцией шаблона pop() получаем значение в другом шаблоне.

Стек переменных функций шаблонов.


Стек (LIFO - последним пришел, первым вышел) для хранения значений переменных функций. Доступен глобально для всех шаблонов, для работы используются функции шаблонов, push() - запись, pop() - чтение. Запись и чтение возможны как в одном шаблоне, так и в разных.

Заголовок


Заголовок - управляющая запись шаблона, определяющая методы переноса шаблона в систему. Заголовок шаблона записывается первой строкой файла и имеет следующий вид:

# Calculate параметр1=значение1 параметр2 [параметр3=значение3 ...]

Содержимое заголовка может быть разбито на строки, в этом случае в конце каждой строки заголовка, кроме последней, должен стоять знак "\" (обратная косая черта).

В случае отсутствия заголовка, настройки файла шаблона определяются исходя из принятых значений по умолчанию.

Допустимые параметры:
Формат
  • format=[...] - формат файла шаблона (см. форматы файлов). По умолчанию формат файла шаблона определяется как "raw", или "bin" для файлов, содержащих двоичные данные.
  • comment=[.] - обозначение начала строкового комментария (пример: "#").

Объединение
  • append=[join|before|after|replace|remove|skip|patch|clear] - способ объединения. По умолчанию способ объединения устанавливается в соответствии с форматом файла. Если append=skip - шаблон пропускается. Если append=clear в случае шаблона файла конфигурационный файл будет очищен - длина файла 0, в случае шаблона директории все файлы и директории внутри конфигурационной директории будут удалены.
  • force - удалять существующие файлы перед записью конфигурационного файла. Правило действует по умолчанию, если указан параметр "symbolic".
  • link=путь - путь к конфигурационному файлу, с которым объединяется файл шаблона. По умолчанию путь совпадает.
    Пример: "link=/etc/conf.d/net.example"
  • path=путь - путь к директории в которой будет находиться конфигурационный файл
  • name=имя - имя конфигурационного файла
  • mirror - выполнять объединение только в случае существования конфигурационного файла. Если конфигурационный файл задан параметром "link" и он не существует, файл назначения удаляется.
  • symbolic - создать символическую ссылку на файл, указанный параметром "link".

Права доступа
  • chmod=XXX - права доступа к конечному файлу (пример: "644"). По умолчанию права соответствуют оригинальному файлу. Если его нет, права соответствуют файлу шаблона.
  • chown=user:group - владелец и/или группа конечного файла (пример: "root:root").

Условия
  • переменная[>|<|==|!=|>=|<=]значение ... - условия переноса файла шаблона в систему. Арифметические операции могут объединяться условием "И" (&) (для версии calculate-lib>=2.2 условие "И" (&&)) и "ИЛИ" (||). Приоритет в данном случае будет отдаваться условию И. Несколько условий, разделённых пробелом будут объединяться условием "И".