Файл конфигурации привязки

Как мне правильно использовать файл конфигурации в Snap?

На данный момент я жестко закодировал хост БД и имя БД. Если бы я хотел поместить его в файл в каталоге projectroot/config, как бы я сделал его доступным в обработчике или в функции инициализации приложения?

В учебнике по снимкам кратко упоминается, что можно использовать библиотеку конфигуратора, но не было объяснения, как ее использовать на самом деле.

Спасибо.


person r.sendecky    schedule 10.07.2013    source источник


Ответы (1)


Просто вызовите getSnapletUserConfig который возвращает Config. Затем используйте функции из конфигуратора. чтобы получить необходимую информацию. Посмотрите snaplet-postgresql-simple. использование файлов конфигурации для рабочего примера.

По умолчанию файл конфигурации имеет значение devel.cfg в текущем путь к файлу снаплета. Поэтому, если вы используете getSnapletUserConfig в своем приложении верхнего уровня, файл конфигурации будет находиться в корне вашего проекта. В противном случае это будет snaplets/foo, где «foo» — это имя снимка, в котором вы находитесь.

person mightybyte    schedule 10.07.2013
comment
Спасибо. Так что я не могу использовать его из обработчика? Вот так: conf ‹-getSnapletUserConfig; dh ‹- liftIO $ C.lookup conf dbhost; db ‹- liftIO $ C.lookup conf dbname - person r.sendecky; 11.07.2013
comment
Да, вы можете использовать его в любом MonadSnaplet. И Handler, и Initializer имеют экземпляры MonadSnaplet. - person mightybyte; 11.07.2013