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?
8
A
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
- 1. Czy istnieje sposób na uzyskanie identyfikatora pakietu w czasie wykonywania?
- 2. Czy istnieje najprostszy sposób budowania pakietu perla?
- 3. Czy istnieje sposób na rozszerzenie pliku w nazwie pakietu?
- 4. Czy w Julii istnieje dobry sposób na utrzymanie wielu wersji pakietu ukierunkowanego na różne wydania?
- 5. Wymagaj minimalnej wersji pakietu R
- 6. sposób cofnięcia aktualizacji pakietu
- 7. Najlepszy sposób na złamanie długich ciągów w kodzie źródłowym C#
- 8. Określić liczbę wersji w historii pakietu R na CRAN
- 9. Czy Maven ma sposób na uzyskanie wersji zależności jako własności?
- 10. Czy istnieje sposób na uzyskanie zlokalizowanych nazw popularnych przycisków dialogowych?
- 11. Czy istnieje sprytny sposób na uzyskanie sortable target w jQueryUI
- 12. Czy istnieje sposób na uzyskanie obwiedni (w pikselach) elementu DOM?
- 13. Czy istnieje sposób na uzyskanie wszystkich wartości w NSUserDefaults?
- 14. Czy istnieje łatwy sposób na uzyskanie nazwy ServerName w Symfony?
- 15. Czy istnieje sposób na uzyskanie REPL w pydev?
- 16. Czy istnieje sposób na uzyskanie wyjątku w Haskell?
- 17. Czy istnieje prosty sposób na uzyskanie wymiarów obrazu w Ruby?
- 18. Czy istnieje sposób na uzyskanie ograniczeń tabeli w SQLite?
- 19. Czy istnieje sposób na uzyskanie ruchów obiektów całkowitych w vim?
- 20. Czy istnieje sposób na uzyskanie pi w arkuszu kalkulacyjnym CSS?
- 21. Czy istnieje sposób na uzyskanie CSS XSS w nowoczesnych przeglądarkach?
- 22. Sposób modyfikacji plików pakietu git?
- 23. Przekazywanie pakietu na startActivity()?
- 24. wartości pakietu plist wersja
- 25. Czy istnieje sposób zmuszenia Checkstyle do zignorowania określonego ostrzeżenia w kodzie źródłowym?
- 26. Jak uzyskać nazwę pakietu/identyfikator pakietu aplikacji w systemie IONIC/Cordova (w kodzie JavaScript)
- 27. Przechowuj foldery w zawartości pakietu (zasoby pakietu) w kodzie Xcode 4.0
- 28. Pakietu sieci Web do pakietu kierowania na kod node.js
- 29. Znajdź najwcześniejszą wersję pakietu z funkcją X
- 30. Instalowanie określonej wersji pakietu za pomocą Kompozytor