2015-10-16 7 views
8

Powiedz, że mam program konsoli, który ma opcję wyświetlenia jego wersji . Obecnie za każdym razem, gdy aktualizuję wersję w pliku .cabal, muszę przejść do kodu źródłowego i zaktualizować ciągłą reprezentację bieżącego numeru wersji . To uczucie przeciwko zasadzie DRY i teraz jestem zastanawiasz się, czy można pobrać wersję mojego projektu zdefiniowaną w pliku .cabal z kodu źródłowego? Może Cabal definiuje jakieś makro CPP lub coś innego?Czy istnieje sposób na uzyskanie wersji pakietu Cabal w kodzie źródłowym pakietu?

Odpowiedz

5

Rzeczywiście Cabal pozwala uzyskać dostęp do informacji z pliku .cabal w swoim programie . According to Cabal documentation, można importować specjalny moduł, który istnieje podczas budowania pakietu, tak:

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

myVersion :: String 
myVersion = showVersion version 

Moduł Paths_packagename zapewnia version typu Version.

Powiązane problemy