[Haskell-cafe] Starting your own Haskell project: part 2

Donald Bruce Stewart dons at cse.unsw.edu.au
Sun Nov 19 08:32:10 EST 2006


dons:
> dagit:
> > On 11/19/06, Dougal Stanton <ithika at gmail.com> wrote:
> > >Quoth Donald Bruce Stewart, nevermore,
> > >> P.S. It might even be useful to have a tool, haskell-project, which
> > >> sets up all these files automatically.
> > >
> > >I was wondering about that just the other day. Is there such an
> > >application to interrogate the user about particulars and then create a
> > >fully compliant *.cabal file?
> > 
> > I'm unaware of such a tool, but as far as UIs go, it should be fairly
> 
> Ok, done!
> 
>     darcs get http://www.cse.unsw.edu.au/~dons/code/mkcabal
> 
> mkcabal creates a new project directory for an executable, populates
> with cabal files, setup.hs and a stub .hs file, based on the project
> name.

Jason suggested that it should create just:

    Setup.hs
    foo.cabal

by default. This is now what mkcabal does. So you can use it to generate
stub .cabal files for existing projects.

    $ runhaskell mkcabal.hs
    Project name: x
    Created Setup.hs and x.cabal

For entirely new projects, mkcabal --init-project
creates an entire new project tree.

    $ runhaskell mkcabal.hs --init-project
    Project name: ruby-on-rails-killer
    Created new project directory: ruby-on-rails-killer

    $ ls ruby-on-rails-killer 
    LICENSE                           Ruby-on-rails-killer.hs
    ruby-on-rails-killer.cabal
    README                            Setup.hs

Further wishlists would be for the default to scan for src files to
populate the .cabal file with, and to distinguish libraries from
executables.

Feedback welcome

-- Don


More information about the Haskell-Cafe mailing list