[Haskell-cafe] Distributing a program with support files
Duncan Coutts
duncan.coutts at worc.ox.ac.uk
Mon May 28 14:49:24 EDT 2007
On Sun, 2007-05-27 at 14:36 +0100, Neil Mitchell wrote:
> Hi,
>
> I'm wanting to release a Haskell program, but am confused how I should
> distribute the associated files it needs. On Windows I would use the
> functions to find the path of the executable, and find the support
> files relative to that - in Haskell (because of Linux) that isn't the
> case.
>
> The basic setup I have is:
>
> foo.exe - main binary
> library.hs - required by the binary
> examples\*.hs - a massive tree of examples, which can be used by the binary
>
> foo.exe also needs to create temporary files relative to library.hs
> and the examples.
list the support files in the "data-files:" stanza in the .cabal file.
Then import the Paths_<pkg> module that Cabal generates for you. It
exports a few functions including:
getDataDir :: IO FilePath
So if you listed:
data-files: library.hs, examples\foo.hs, ...
then you'd say
dataDir <- getDataDir
doSomething (dataDir </> "library" <.> "hs" )
doSomething (dataDir </> "examples" </> "foo" <.> "hs" )
This should be portable between linux and windows (and everything else
for that matter).
Duncan
More information about the Haskell-Cafe
mailing list