2015-10-16 11 views
8

私は バージョンを表示するオプションがあるコンソールプログラムを持っているとします。現在私が.cabalファイルのバージョンを更新するときには、 をソースコードに行き、現在の定数文字列表現を更新する必要があります。 バージョン番号も同様です。これはDRYの原則を感じていますが、今私は です。 .cabalソースコードのファイルで定義されているように私のプロジェクトのバージョンを取得することは可能ですか?たぶんカバールはCPPマクロや 何かを定義していますか?パッケージのソースコードにCabalパッケージのバージョンを取得する方法はありますか?

答えて

5

実際、Cabalは プログラムの.cabalファイルからの情報にアクセスすることができます。

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

myVersion :: String 
myVersion = showVersion version 

モジュールPaths_packagenameがタイプ Versionversion提供:According to Cabal documentationは、 あなたはこのようなあなたのパッケージ、 の建物の間に存在する特別なモジュールをインポートすることができます。

関連する問題