shaker: simple and interactive command-line build tool

[ bsd3, development, library, program ] [ Propose Tags ]

Shaker is a build tool which allow to simply compile or launch test on an haskell project and provides some interesting features like continuous action. With continuous action, an action (compile or test) will be automatically executed when a source modification is detected.

All configuration are made via cabal; Shaker will read cabal configuration to discover source directories, compilation options and targets to compile.

Usage

The cabal configuration file should be generated beforehand with cabal configure. If you change your cabal configuration, you will need to recreate the configuration file.

Launch interactive prompt

In the root of your haskell project, launch shaker. An interactive prompt will allow you to execute different actions.

Launch a shaker action from command-line

In the root of your haskell project, launch shaker with your action as a command argument; shaker will execute the given action and exit. See examples for more details.

Action execution

Simple Execution
An action can be launched normally, by entering the action name.
Multiple action execution
You can specify multiple action to execute simply by separating action by spaces.
Continuous Action
A continuous action will execute the action when a file modification has been detected. Every action are elligible to continuous action, you simply need to prefix them with ~. To stop a continuous action, simply use ^C.

Available actions

compile
Compile the project. Targets of the compilation are main files (in case of executable) and exposed modules (in case of library).
fullcompile
Compile all hs files found in source directory. It is usefull to compile test sources. Since it is not possible to compile multiple modules with main, all modules with a main function are excluded.
help
Print all available action.
clean
Clean the directory containing .o and .hi files.
test
Launch all quickcheck properties and hunit tests of the project using test-framework. You can provide a regexp as argument and shaker will execute all tests located in modules matching the regexp. Quickcheck properties and HUnit tests are automatically discovered using GHC Api. All functions begining with “prop_” are considered as quickcheck properties and all functions of type Test.HUnit.Lang.Assertion are considered as HUnit tests.
itest
Launch all quickcheck properties and hunit tests using test-framework on compiled modules. Same as test, you can give a regexp as argument. This action is only useful when used with continuous action.
quit
Exit the application. You can also use ^C or ^D to exit shaker.

Examples with interactive prompt

% compile
Simply compile the project
% clean compile
Clean and compile the project
% ~compile
Switch to continuous mode and will compile the project when sources are modified.
% ~clean compile
Switch to continuous mode and will clean and compile the project when sources are modified.
% test
Execute all tests in the project
% ~itest
Switch to continuous mode and execute tests on compiled modules.
% test Regex
Launch all tests in modules containing Regex
% ~itest Regex
Launch all tests in modules containing Regex only when Regex is build.

Examples with command-line

% shaker fullcompile
Launch shaker, execute the fullcompile action and give back the control.
% shaker "~fullcompile"
Launch shaker, continuously execute the fullcompile action until shaker is interrupted.

[Skip to Readme]

Flags

Automatic Flags
NameDescriptionDefault
test

Build test program.

Disabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1, 0.2, 0.2.1, 0.3, 0.3.1, 0.4, 0.4.1, 0.4.2, 0.4.3, 0.5.0, 0.5.1
Dependencies base (>=4 && <5), bytestring (>=0.9.1.5), Cabal (>=1.8.0.6), containers (>=0.3 && <0.4), directory (>=1.0 && <1.1), filepath (>=1.1 && <1.2), ghc (>=6 && <7), ghc-paths (>=0.1 && <0.2), haskeline (>=0.6 && <0.7), haskell98 (>=1.0 && <1.1), HUnit (>=1.2 && <1.3), mtl (>=1.1 && <1.2), old-time (>=1.0.0), parsec (>=3 && <4), QuickCheck (>=2 && <3), regex-posix (>=0.94 && <0.95), template-haskell (>=2.4.0.0), test-framework (>=0.3 && <0.4), test-framework-hunit (>=0.2 && <0.3), test-framework-quickcheck2 (>=0.2 && <0.3) [details]
License BSD-3-Clause
Copyright Copyright (c) 2010 Anthonin Bonnefoy
Author Anthonin Bonnefoy
Maintainer anthonin.bonnefoy@gmail.com
Category Development
Home page http://github.com/bonnefoa/Shaker
Bug tracker http://github.com/bonnefoa/Shaker/issues
Source repo head: git clone git://github.com/bonnefoa/Shaker.git
this: git clone git://github.com/bonnefoa/Shaker.git(tag 0.4)
Uploaded by AnthoninBonnefoy at 2010-10-01T18:06:04Z
Distributions
Reverse Dependencies 1 direct, 0 indirect [details]
Executables test, shaker
Downloads 8651 total (29 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]

Readme for shaker-0.4

[back to package description]
Shaker is a build tool which allow to compile and launch test on haskell project with some features like continuous action similar to SBT.

The package is uploaded in hackage - http://hackage.haskell.org/package/shaker

To install shaker, either use cabal install - cabal update && cabal install shaker 
Or build shaker from sources - runhaskell Setup.hs configure && runhaskell Setup.hs install