Aggregate all types and data used through shaker
- type Shaker = ReaderT ShakerInput
- type ShakerR = Reader ShakerInput
- type ThreadIdList = MVar [ThreadId]
- type Token = MVar Int
- type CompileM = Reader CompileInput
- data Duration
- = OneShot
- | Continuous
- data Action
- type Input = MVar (Maybe Command)
- data InputState = InputState {}
- data ShakerAction
- data Command = Command Duration [Action]
- data ShakerInput = ShakerInput {}
- data ThreadData = ThreadData {}
- getListenThreadList :: ShakerInput -> ThreadIdList
- data CompileInput = CompileInput {
- cfSourceDirs :: [String]
- cfDescription :: String
- cfCompileTarget :: String
- cfDynFlags :: DynFlags -> DynFlags
- cfCommandLineFlags :: [String]
- cfTargetFiles :: [String]
- data ListenerInput = ListenerInput {
- fileListenInfo :: [FileListenInfo]
- delay :: Int
- data FileListenInfo = FileListenInfo {}
- data FileInfo = FileInfo {}
- type PluginMap = Map ShakerAction Plugin
- type CommandMap = Map String ShakerAction
- type Plugin = Shaker IO ()
- defaultCompileInput :: CompileInput
- defaultCompileFlags :: DynFlags -> DynFlags
- defaultListenerInput :: ListenerInput
- defaultHaskellPatterns :: [String]
- defaultExclude :: [String]
- exitCommand :: Command
- emptyCommand :: Command
Documentation
type Shaker = ReaderT ShakerInputSource
Environnement containing the project configuration. It is generated at startup and won't change
type ShakerR = Reader ShakerInputSource
type ThreadIdList = MVar [ThreadId]Source
type CompileM = Reader CompileInputSource
Environnement for the project compilation This environnement can change depending on the compile action called
Duration define the life span of an action
OneShot | Execute the action and give back control |
Continuous | Execute the action when a source file modification is done until it is stopped |
Action represents the differents action with arguments
data ShakerAction Source
ShakerAction represents the differents actions realisable by shaker
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 |
Command agregate a duration with an action
data ShakerInput Source
Represents the global configuration of the system
ShakerInput | |
|
data ThreadData Source
data CompileInput Source
Configuration flags to pass to the ghc compiler
CompileInput | |
|
data ListenerInput Source
Configuration of the continuous listener
ListenerInput | |
|
Agregate a FilePath with its modification time
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
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