Search code examples
scalahaskellsbtcabal

SBT-like features in the Haskell build ecosystem


I've been using Scala with SBT quite a bit lately. The REPL loop of has a handy feature: ~ COMMAND, meaning perform COMMAND for every source file change in the project. For instance:

~ test

and

~ compile

are terrifically useful for rapid development. I wonder, does anyone know of something similar for Haskell, a cabal shell, maybe?


Solution

  • You can get something like this very easily using inotifywait.

    Just fire up a terminal in your project directory and run something like this:

    $ while inotifywait -qq -r -e modify .; do cabal build && ./dist/build/tests/tests; done
    

    This also works for any other language; just insert the build commands of your choice.