Frage

Ich würde mein cabalised Programm wie einen --version Schalter haben.

Ich mag es die gleiche Version berichten, wie sie in der .cabal Datei ist.

Wenn ich die Versionsnummer separat in meinem Haskell-Quellcode aktualisieren sowie in der .cabal Datei, werde ich sie schließlich synchron raus.

So, wie kann mein Programm, während unter Kabale kompiliert wird, erhält die Versionsnummer aus der .cabal Datei?

War es hilfreich?

Lösung

Das ist gut mit Cabal unterstützt. Wie folgt (von xmonad):

Import Paths_$myprogram - eine Datei Cabal erstellt mit vielen Metadaten aus der .cabal Datei zusammen mit dem Modul für den Umgang mit Versionsnummern:

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

Fügen Sie eine print-Anweisung des 'Version' Feld von Paths_$myprogram zur Verfügung gestellt drucken:

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

Im Allgemeinen Cabal erzeugten Pfad Datei enthält die folgenden Werte, in dist/build/autogen/

version,
getBinDir, getLibDir, getDataDir, getLibexecDir,
getDataFileName
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top