[Devel-conf] predator: уточнение архитектуры модулей

Stanislav Ievlev =?iso-8859-1?q?inger_=CE=C1_altlinux=2Eorg?=
Ср Фев 4 17:52:40 MSK 2004


On Wed, Feb 04, 2004 at 12:37:37PM +0300, Stanislav Ievlev wrote:
> Вчера была тождественно занесена нога над граблей (что ж прототип есть
> прототип). К счастью вовремя сработала сигнализация, оставленная бойцами из отряда alterator. 
> Ночь размышления над обнаруженной миной выяснила истинную причину mis-design'а
> и необходимость чётче сформулировать определения модуля:
> 
> Очень не хотелось этого делать, но в противном случае (как показали
> размышления) мы будем вынуждены выкинуть всё что сейчас делаем.
> 
> 1. Итак каждый модуль имеет две точки входа:
> process - собственно процесс конфигурирования. Он полностью совпадает с
> процессом конфигурирования в alterator.
> post - актуализация произведённых изменений в устанавливаемой системе.
> 
> Например для модуля i18n:
> process - выбор локали системы
> post - перенос настроек в устанавливаемую систему
> 
> 2. Все модули должны быть взаимо независимы. Максимум что они могут
> делать: читать данные pot, заполненные из profile.
> Это условие ключевое. В alterator модули могут запускаться в произвольном
> порядке.
> 
> Саша, тебе необходимо внести корректировки в дизайн своих модулей. Все они
> незначительные и делаются в течение 1-го часа.
> 
> 1. i18n:process читает данные из файла, если они есть то использует как
> значение по умолчанию в enumerator.
> 2. Результаты обработки записываются в конфигурационные файлы заново.
> 3. i18n:post копирует файлы конфигурации в устанавливаемую систему.
> 4. i18n:keyboard получает данные из файла какой язык был выбран основным
> (какая-то общая функция, когда потом это будет оформлено как hook
> необходимость в этом отпадёт)
>    читает какая раскладка была выбрана, если есть использует как значение
>    по умолчанию
> 5. i18n:post просто копирует данные в установленную систему.
> 
> Сейчас ещё не готов инструмент чтения конфигов, я им займусь сегодня.
> Тебе ничего переписывать не надо. Поменяется _только_ функция получения
> ранее установленного значения. Как только инструментарий будет готов,
> замена содержимого функции - дело 15 минут.
> Пока инструментарий не готов, данная функция будет работать с pot,
> собственно что она раньше и делала.
Инструмент готов (alt/utils/sh.hh);)
Пока скрывает под собой немного страшноватые вещи но внешне внолне белый и
пушистый :)
      alt::sh_var_iterator it;
      it = std::find_if(alt::make_sh_iterator(is),
                        alt::make_sh_iterator(),
                        alt::is_variable("LANG"));
      if (it != alt::make_sh_iterator())
	std::cout<<"LANG="<<it->second; //значение переменной




Подробная информация о списке рассылки devel-conf