Как мой Haskell может программировать, или библиотека находят ее номер версии?

Я хотел бы, чтобы моя cabalised программа имела a --version переключатель.

Я хотел бы, чтобы это сообщило о той же версии, как присутствует в .cabal файле.

Если я должен обновить номер версии отдельно в моем исходном коде Haskell, а также в .cabal файле, я в конечном счете вытащу их из синхронизации.

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

61
задан Don Stewart 6 May 2011 в 23:20
поделиться

1 ответ

Это хорошо поддерживается Кабалом. Следующее (из xmonad):

Импорт Paths_ $ myprogram - файл, который Cabal создает с большим количеством метаданных из файла .cabal вместе с модулем для обработки номеров версий:

import Paths_xmonad (version)
import Data.Version (showVersion)

Добавить print для печати поля 'версия', предоставленного Paths_ $ myprogram :

case args of
     ["--version"] -> putStrLn ("xmonad " ++ showVersion version)

В общем, созданный Кабалом файл Paths содержит следующие значения в dist / build / autogen /

version,
getBinDir, getLibDir, getDataDir, getLibexecDir,
getDataFileName
85
ответ дан 24 November 2019 в 17:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: