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 CurrentFiles = MVar [FileInfo]
- type MvModifiedFiles = MVar [FileInfo]
- type Job = MVar [FileListenInfo]
- type CompileM = Reader CompileInput
- data ConductorData = ConductorData ListenState ([FileInfo] -> IO ())
- data ListenState = ListenState {}
- data Duration
- = OneShot
- | Continuous
- data Action
- type InputCommand = MVar (Maybe Command)
- data InputState = InputState {}
- data ShakerAction
- data Command = Command Duration [Action]
- data Verbosity
- data ShakerInput = ShakerInput {
- shakerCompileInputs :: [CompileInput]
- shakerListenerInput :: ListenerInput
- shakerPluginMap :: PluginMap
- shakerCommandMap :: CommandMap
- shakerArgument :: [String]
- shakerModifiedInfoFiles :: [FileInfo]
- shakerThreadData :: ThreadData
- shakerInputState :: InputState
- shakerLocalBuildInfo :: LocalBuildInfo
- shakerPackageIndex :: PackageIndex
- shakerModuleData :: [ModuleData]
- shakerVerbosity :: Verbosity
- data ThreadData = ThreadData {}
- getListenThreadList :: ShakerInput -> ThreadIdList
- data CompileInput = CompileInput {}
- data ListenerInput = ListenerInput {}
- data FileListenInfo = FileListenInfo {}
- data FileInfo = FileInfo {}
- data PackageData = PackageData {}
- data ModuleData
- = ModuleData { }
- | GhcModuleData { }
- getModuleDataTests :: ModuleData -> ([String], [String], [String])
- getModuleDataName :: ModuleData -> String
- type MapImportToModules = Map String [String]
- type PluginMap = Map ShakerAction Plugin
- type CommandMap = Map String ShakerAction
- type Plugin = Shaker IO ()
- defaultCompileFlags :: DynFlags -> DynFlags
- defaultHaskellPatterns :: [String]
- defaultExclude :: [String]
- exitCommand :: Command
- emptyCommand :: Command
- listTestLibs :: [String]
- moduleDataExtension :: String
- defaultDistDir :: String
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 CurrentFiles = MVar [FileInfo]Source
MVar used to store currentFiles listed
type MvModifiedFiles = MVar [FileInfo]Source
MVar used to store modifiedFiles since the last check
type Job = MVar [FileListenInfo]Source
MVar used to pass action to the fileListenInfoDirectory scanner
type CompileM = Reader CompileInputSource
Environnement for the project compilation This environnement can change depending on the compile action called
data ConductorData Source
ConductorData ListenState ([FileInfo] -> IO ()) |
data ListenState Source
Agregate all information of listener
ListenState | |
|
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
type InputCommand = MVar (Maybe Command)Source
The input mvar is used to push the parsed command
data InputState Source
InputState | |
|
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
data ThreadData Source
data CompileInput Source
Configuration flags to pass to the ghc compiler
CompileInput | |
|
Show CompileInput | |
Monoid CompileInput | Default compilation shakerArgument. Wall is activated by default |
data ListenerInput Source
Configuration of the continuous listener
ListenerInput | |
|
Monoid ListenerInput | The default Listener configuration Listened sources are all haskell sources in . The default listenerInputDelay is 2 sec |
data FileListenInfo Source
Represents fileListenInfoDirectory to listen
FileListenInfo | |
|
Agregate a FilePath with its modification time
data PackageData Source
getModuleDataTests :: ModuleData -> ([String], [String], [String])Source
type MapImportToModules = Map String [String]Source
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
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 dist/shakerTarget there is no main linkage by default to allow faster compilation feedback
defaultHaskellPatterns :: [String]Source
Default haskell file pattern : *.hs
defaultExclude :: [String]Source
Default exclude pattern : Setup.hs
listTestLibs :: [String]Source