shaker-0.4.3: simple and interactive command-line build tool

Shaker.Type

Contents

Description

Aggregate all types and data used through shaker

Synopsis

Documentation

type Shaker = ReaderT ShakerInputSource

Environnement containing the project configuration. It is generated at startup and won't change

type CompileM = Reader CompileInputSource

Environnement for the project compilation This environnement can change depending on the compile action called

data Duration Source

Duration define the life span of an action

Constructors

OneShot

Execute the action and give back control

Continuous

Execute the action when a source file modification is done until it is stopped

Instances

data Action Source

Action represents the differents action with arguments

Instances

type Input = MVar (Maybe Command)Source

The input mvar is used to push the parsed command

data InputState Source

Constructors

InputState 

Fields

input :: Input
 
token :: Token

Token is used to manage the token between action executor and command-line listener

data ShakerAction Source

ShakerAction represents the differents actions realisable by shaker

Constructors

Compile

Compile sources with ghc

FullCompile

Compile all hs sources with ghc

TestFramework

Execute both quickcheck and hunit using test framework

ModuleTestFramework

Execute both quickcheck and hunit using test framework with module filtering

IntelligentTestFramework

Execute both quickcheck and hunit using test framework on recompiled modules

IntelligentModuleTestFramework

Execute both quickcheck and hunit using test framework on recompiled modules

InvalidAction

Display an error when invalid action is inputed

Help

Display the help

Execute

Execute a command

Empty

Nothing to execute

Quit

Exit shaker

Clean

Delete generated

data Command Source

Command agregate a duration with an action

Constructors

Command Duration [Action] 

Instances

data CompileInput Source

Configuration flags to pass to the ghc compiler

Constructors

CompileInput 

Fields

cfSourceDirs :: [String]

Source directory of haskell files

cfDescription :: String

Desctipition of the compile input (executable or library if comming from cabal)

cfCompileTarget :: String

Destination of .o and .hi files

cfDynFlags :: DynFlags -> DynFlags

A transform fonction wich will takes the DynFlags of the current ghc session and change some values

cfCommandLineFlags :: [String]

The command line to pass options to pass to the ghc compiler

cfTargetFiles :: [String]

List of files or list of modules to compile

Instances

data ListenerInput Source

Configuration of the continuous listener

Constructors

ListenerInput 

Fields

fileListenInfo :: [FileListenInfo]

The files to listen

delay :: Int

Delay beetween 2 check in microsecond

data FileListenInfo Source

Represents directory to listen

Constructors

FileListenInfo 

Fields

dir :: FilePath

location of the listened directory

ignore :: [String]

ignore patterns

include :: [String]

include patterns

data FileInfo Source

Agregate a FilePath with its modification time

Instances

type PluginMap = Map ShakerAction PluginSource

Represents the mapping beetween an action and the function to execute

type CommandMap = Map String ShakerActionSource

Represents the mapping between the command-line input and the action

type Plugin = Shaker IO ()Source

Represents an action of shaker

Default data

defaultCompileInput :: CompileInputSource

Default compilation argument. Wall is activated by default

defaultCompileFlags :: DynFlags -> DynFlagsSource

default dynamics flags the sources are expected to be in src as described in http://www.haskell.org/haskellwiki/structure_of_a_haskell_project the result of compilation (.o and .hi) are placed in the target/ directory there is no main linkage by default to allow faster compilation feedback

defaultListenerInput :: ListenerInputSource

The default Listener configuration Listened sources are all haskell sources in src and testsuite The default delay is 2 sec

defaultHaskellPatterns :: [String]Source

Default haskell file pattern : *.hs

defaultExclude :: [String]Source

Default exclude pattern : Setup.hs