2013-08-06 3 views
0

Я работаю над инструментом, который может помочь мне создать файл конфигурации для использования с существующим программным обеспечением (Vagrant), конечно, в том формате, который понимает Вагрант. Тем не менее, мне сложно спланировать дизайн моей программы, который может помочь мне с динамической генерацией конфигурационного файла с программным подходом. Более того, структура файла конфигурации будет состоять из множества необязательных фрагментов, которые могут/не требуются в конечном файле конфигурации в соответствии с требованиями пользователя. Я не могу придумать какой-нибудь эффективный подход.Лучшая практика создания файла конфигурации для существующего программного обеспечения программно

три подхода, которые я думал, являются:

1) Работа на готовом шаблоне и просто заменить заполнители с соответствующим текстом. 2) Создание конфигурационного файла «на лету» с добавлением String и т. Д. (Не похоже на надежное и надежное решение для меня). 3) Бифуркация базовой конфигурации конфигурации на подпункты, а затем включающая каждый необходимый компонент один за другим по мере необходимости, затем заменяя значения заполнителя.

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

+0

Раньше я использовал Velocity как шаблонный двигатель. Здесь может быть хороший выбор. –

ответ

0

Существуют ли какие-либо ограничения на формат файла конфигурации? Если нет, используйте YAML (или аналогичный) с двумя конфигурационными файлами: default.yml и deploy.yml. Поставьте значения по умолчанию для необязательных параметров конфигурации в default.yml, а затем выполните команду Vagrant/Chef/Ansible/bash/независимо от того, как записать файл deploy.yml. При запуске ваше приложение читает оба файла конфигурации, отдавая приоритет deploy.yml.