Документация Calculate Linux
Вид материала | Документы |
СодержаниеУсловные блоки |
- В Linux. 2 Приобретение и инсталляция Linux. 3 Учебник по Linux 4 Администрирование, 3589.91kb.
- Gnu/Linux, 51.18kb.
- Лекция 17. Операционная система Linux, 126.24kb.
- Концепция развития спо в РФ 2 История Linux, 105.81kb.
- Windows против Linux, 88.72kb.
- RH253 Сетевые службы Red Hat Linux и администрирование безопасности, 45.9kb.
- Установка ос linux: основные моменты, 83.79kb.
- Исследование возможностей ос linux для приложений реального времени с обработкой разнородной, 98.25kb.
- План лекции «alt linux. Установка и особенности» Заявка на участие в апробации Линукса, 48kb.
- Linux от Пламен Петков По-добрата операционна система Linux?, 1306.19kb.
МеткиВы можете настроить систему исходя из аппаратных требований компьютера, сетевых установок и прочих условий. Для этого в файле шаблона вместо постоянных значений, вы можете устанавливать метки переменных. Пример файла /etc/conf.d/hostname: HOSTNAME="#-os_net_hostname-#" Условные блокиФайл шаблона может содержать условные блоки. Условные блоки - выделенный текст шаблона, подставляемый в случае соответствия регулярного выражения. Регулярное выражение - метод проверки значений выражений. В качестве значений могут применяться следующие типы данных:
Методом проверки выступает арифметическая операция >, <, ==, !=, >=, <= (больше, меньше, равно, не равно, больше либо равно, меньше либо равно). Тип данных определяется перед операцией сравнения. Арифметические операции могут объединяться условием "И" (&) и "ИЛИ" (||). Приоритет в данном случае будет отдаваться условию "И". Условный блок должен начинаться с метки "#?переменная1==значение1(...)#" и заканчивается "#переменная1#", записанными в начале строки. Пример условного блока файла /etc/make.conf: #?os_arch_march==i686&os_linux_shortname==CLD# CFLAGS="-O2 -march=i686 -pipe" CHOST="i686-pc-linux-gnu" #os_arch_march# В приведенном примере сравниваются переменные "setup_march" и "setup_sys_shortname" со строковыми значениями "i686" и "CLD" соответственно. В случае, если значения обоих переменных совпадают, текст блока будет подставлен в результирующий файл. ФункцииДля формирования сложных файлов требующих вычисления во время обработки служат функции. Подобно переменным, функции вставляются в текст шаблона при помощи конструкции "#-функция()-#". Функции использующие в аргументах путь к файлу (path), могут использовать в качестве домашней директории пользователя '~' Доступные функции: belong(pkg_name) - проверка имени устанавливаемого пакета, если выполняется установка пакета. В остальных случаях функция будет возвращать положительный результат. pkg_name - имя пакета, необязательный аргумент. Если у функции нет аргумента, то аргументом является имя директории в которой находится шаблон с функцией belong(). Результат зависит от значения переменной шаблона cl_belong_pkg
Пример. Заголовок шаблона1: # Calculate belong(nss_ldap)=! Заголовок шаблона2: # Calculate belong(kdm)=!
case(type,var) - вывод значения переменной шаблона с изменением регистра символов. где:
Пример. Выведем название хоста в верхнем регистре: #-case(upper,os_net_hostname)-# disk(mount_point,name) - выводит значение параметра жесткого диска при инсталяции системы. Значение функция получает из переменной ('os_install_disk_' + name, если такой не существует, то 'os_disk_'+ name), для поиска нужного значения используется переменная os_install_disk_mount (точки монтирования при инсталяции). где:
значения переменных os_install_disk_mount = ['swap', '/', '', '', '/var/calculate'] os_disk_grub ['0,0', '0,1', '0,2', '0,3', '0,4'] функция disk(/var/calculate,grub)
функция disk(/boot,grub)
Пример. Выведем диск для загрузчика grub: #-disk(/boot,grub)-# получаем значение 0,1 env(service.var_name) - чтение значения записанной переменной шаблона сервиса. Информация получается путем обработки файлов хранения значений переменных шаблонов. где:
Примеры:
#-info(jabber,sr_jabber_host)-# получаем значение jabber.calculate.ru exists(path,opt) - проверка существования файла или директории. Если файл или директория существует выводит '1', иначе '' path - путь в файловой системе. opt - необязательная опция. Возможные значения "opt":
Пример. Проверим существование директории /etc #-exists(/etc)-# Результатом будет '1' groups(group1,group2,..groupN) - проверка вхождения пользователя в группы group1,group2, ..groupN Если пользователь входит хотя бы в одну из групп выводит '1', иначе '' group1 .. groupN - названия групп. Пример. Проверим входит ли пользователь в группу wheel #-group(wheel)-# Результатом будет '1' если пользователь входит в группу wheel ini(var, value, opt) - запись и чтение переменной из конфигурационного файла пользователя (~/.calculate/ini.env). где:
Примеры:
#-ini(test,15)-#
#-ini(test)-#
[test] param = Тестовый параметр тогда функция #-ini(test.patam,,unicode)-# вернет \u0422\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 а функция #-ini(test.patam,,url)-# вернет %d0%a2%d0%b5%d1%81%d1%82%d0%be%d0%b2%d1%8b%d0%b9%20%d0%bf%d0%b0%d1%80%d0%b0%d0%bc%d0%b5%d1%82%d1%80 Опция purl отличается от url тем что преобразует '/' в код '%2F' server(service.option,var) - чтение значения параметра сервиса. Информация получается путем обработки файла /var/calculate/remote/server.env где:
Примеры:
#-server(jabber,port)-# получаем значение 5223
#-server(jabber,port,jabber_port)-# значение переменной функции jabber_port - 5223 list(var,index) - вывод значения по индексу из переменной. где:
Пример. Значение переменной os_disk_dev = ['/dev/sda1', '/dev/sda2', '/dev/sda3', '/dev/sda4', '/dev/sda5'] #-list(os_disk_dev,1)-# Метка функции будет заменена на '/dev/sda2' load(arg,path,opt) - отображение информации из файла. где: arg - тип содержимого файла. opt - необязательная опция. Возможные значения "opt":
Возможные значения "arg":
Возможные значения "path":
Пример. Выведем содержимое /proc/cpuinfo на место объявления функции. #-load(char,/proc/cpuinfo)-# module(name_space) - получение переменных шаблонов пакета или выполнение методов пакета используя его api модуль или выполнение определенного метода для всех пакетов у которых есть api модуль. где:
Пространство имен для получения переменных состоит из элементов разделенных точкой. Первый элемент пространства имен - имя пакета. Имя пакета это название установленного пакета имеющего api модуль (тире '-' в названии должно быть заменено на нижнее подчеркивание '_'). Первый элемент пространства имен для всех пакетов - 'all' (зарезервированное название). Пример первого элемента для пакета calculate-ldap. calculate_ldap Второй элемент пространства имен - название метода api или 'var' - зарезервированное название для пространства имен переменных шаблонов пакета. Пример первого и второго элементов для пакета calculate-ldap для получения доступа к переменным. calculate_ldap.var Пример первого и второго элементов для пакета calculate-ldap для получения результата выполнения метода is_setup() api модуля (проверка, настроен ли пакет?). calculate_ldap.is_setup Третий элемент пространства - в большинстве случаев это пространство имен для получения значения переменной шаблона. Пример пространства имен для получения значения переменной шаблонов cl_name пакета calculate-ldap calculate_ldap.var.cl_name Примеры использования функции: Получим значение переменной шаблонов cl_name (название пакета) пакета calculate-ldap #-module(calculate_ldap.var.cl_name)-# получаем значение calculate-ldap Проверим настроен ли пакет calculate-ldap для работы #-module(calculate_ldap.is_setup)-# получаем значение, если пакет настроен 1 Проверим настроены ли для работы все установленные пакеты имеющие api модуль. #-module(all.is_setup)-# получаем значение, если все пакеты настроены 1 pkg (category/package) - вывод версии установленного пакета. где:
В качестве совместимого режима можно указывать только название пакета, в этом случае скорость обработки шаблона будет ниже. Пример. Выведем версию установленного пакета (например 4.2.4). #-pkg(kde-base/kdelibs)-# Значит в системе установлен пакет kdelibs-4.2.4 push(var, value) - помещение значения переменной в стек переменных функций шаблонов. где:
Примеры:
#-push(test,15)-#
#-push(test)-# pop(var) - извлечение значения из стека переменных функций шаблонов и присвоение его переменной.
Примеры:
#-push(test,15)-#
#-pop(test2)-# Получить значение из стека переменных функций шаблонов возможно как в текущем шаблоне, так и в любом другом. После получения значения, оно удаляется из стека. replace(old, new, var) - замена в значении переменной var текста old, на new. где:
Текст old и new должен быть заключен в двойные или одинарные кавычки. В тексте в двойных кавычках обрабатываются управляющие символы (\', \", \n, \r, \t, \). В одинарных кавычках текст не обрабатывается. Пример. значение переменной шаблона ur_signature Компания «Калкулэйт»\nРоссия, Санкт-Петербург, пл. Стачек, 4\nlate.ru\n+7 812 3363632\n+7 495 7727678 при выполении функции #-replace('\n',"\n",ur_signature)-# в точку вставки будет вставлен следующий текст (символ "\n" будет заменен на перевод строки) Компания «Калкулэйт» Россия, Санкт-Петербург, пл. Стачек, 4 late.ru +7 812 3363632 +7 495 7727678 rnd(type,len) - вывод случайной комбинации символов. где:
Пример. Выведем три 3 случайных числа (например 372). #-rnd(num,3)-# sum(var,sum_print, sum_out) - вычисляемые значения смещений. Функция разрабатывалась для настройки ссылка скрыта (KDE). где:
Примеры:
#-sum(clock,,15)-#
#-sum(bt,clock)-#
#-sum(bt,bt+2,bt+35+2)-# |