[Haskell-cafe] Synchronising cabal package version with
self-reported version
Denis Bueno
dbueno at gmail.com
Fri Apr 17 23:08:16 EDT 2009
On Fri, Apr 17, 2009 at 20:41, Don Stewart <dons at galois.com> wrote:
> dbueno:
>> Hi all,
>>
>> In a command-line app of mine I want to have a --version flag, like
>> many GNU apps do to report their version. The only way I know to
>> provide the version number is to hardcode it in the source code
>> somewhere. That means I have the version number in two places: the
>> .cabal file and the source code. I just know that one day they'll get
>> unsynchronised, and --version will be wrong.
>>
>> Is there any way to put the version number in _one_ place, and have
>> both the .cabal and source refer to it? Or even any easier way to
>> synchronise both version numbers?
>
> Yes, cabal provides support for this. Here's how we do that in xmonad.
>
> In your program, import the magic module Paths_$progname:
>
> import Paths_xmonad (version)
>
> ["--version"] -> putStrLn ("xmonad " ++ showVersion version)
>
> which provides many fields from the .cabal file used to compile the
> program.
Awesome! Thanks. This is exactly what I was hoping for.
Denis
More information about the Haskell-Cafe
mailing list