Jak mój program lub biblioteka Haskell znaleźć jego numer wersji?

Chciałbym, aby mój program miał przełącznik --version.

Chciałbym zgłosić tę samą wersję, która jest obecna w .plik cabal.

Jeśli muszę zaktualizować numer wersji oddzielnie w moim kodzie źródłowym Haskell, jak również w ./ align = "left" /

Jak więc mój program, podczas kompilacji pod cabal, może uzyskać jego numer wersji z .akta Cabala?

Author: Don Stewart, 2010-05-23

1 answers

Jest to dobrze wspierane przez Cabal. Jak następuje (z xmonad):

Import Paths_$myprogram - Plik tworzy się z dużą ilością metadanych zplik cabal wraz z modułem do obsługi numerów wersji:

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

Dodaj instrukcję print, aby wydrukować pole "version" dostarczone przez Paths_$myprogram:

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

Ogólnie, plik wygenerowanych ścieżek Cabala zawiera następujące wartości, w dist/build/autogen/

version,
getBinDir, getLibDir, getDataDir, getLibexecDir,
getDataFileName
 78
Author: Don Stewart,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-06 07:15:14