Hooks allow authors to add specific functionality before and after a command is run, and also to specify additional preprocessors.
WARNING: The hooks interface is under rather constant flux as we try to understand users needs. Setup files that depend on this interface may break in future releases.
Constructors
UserHooksreadDesc :: IO (Maybe GenericPackageDescription)Read the description file
hookedPreProcessors :: [PPSuffixHandler]Custom preprocessors in addition to and overriding knownSuffixHandlers.
hookedPrograms :: [Program]These programs are detected at configure time. Arguments for them are added to the configure command.
preConf :: Args -> ConfigFlags -> IO HookedBuildInfoHook to run before configure command
confHook :: (GenericPackageDescription, HookedBuildInfo) -> ConfigFlags -> IO LocalBuildInfoOver-ride this hook to get different behavior during configure.
postConf :: Args -> ConfigFlags -> PackageDescription -> LocalBuildInfo -> IO ()Hook to run after configure command
preBuild :: Args -> BuildFlags -> IO HookedBuildInfoHook to run before build command. Second arg indicates verbosity level.
buildHook :: PackageDescription -> LocalBuildInfo -> UserHooks -> BuildFlags -> IO ()Over-ride this hook to get different behavior during build.
postBuild :: Args -> BuildFlags -> PackageDescription -> LocalBuildInfo -> IO ()Hook to run after build command. Second arg indicates verbosity level.
preRepl :: Args -> ReplFlags -> IO HookedBuildInfoHook to run before repl command. Second arg indicates verbosity level.
replHook :: PackageDescription -> LocalBuildInfo -> UserHooks -> ReplFlags -> [String] -> IO ()Over-ride this hook to get different behavior during interpretation.
postRepl :: Args -> ReplFlags -> PackageDescription -> LocalBuildInfo -> IO ()Hook to run after repl command. Second arg indicates verbosity level.
preClean :: Args -> CleanFlags -> IO HookedBuildInfoHook to run before clean command. Second arg indicates verbosity level.
cleanHook :: PackageDescription -> () -> UserHooks -> CleanFlags -> IO ()Over-ride this hook to get different behavior during clean.
postClean :: Args -> CleanFlags -> PackageDescription -> () -> IO ()Hook to run after clean command. Second arg indicates verbosity level.
preCopy :: Args -> CopyFlags -> IO HookedBuildInfoHook to run before copy command
copyHook :: PackageDescription -> LocalBuildInfo -> UserHooks -> CopyFlags -> IO ()Over-ride this hook to get different behavior during copy.
postCopy :: Args -> CopyFlags -> PackageDescription -> LocalBuildInfo -> IO ()Hook to run after copy command
preInst :: Args -> InstallFlags -> IO HookedBuildInfoHook to run before install command
instHook :: PackageDescription -> LocalBuildInfo -> UserHooks -> InstallFlags -> IO ()Over-ride this hook to get different behavior during install.
postInst :: Args -> InstallFlags -> PackageDescription -> LocalBuildInfo -> IO ()Hook to run after install command. postInst should be run on the target, not on the build machine.
preReg :: Args -> RegisterFlags -> IO HookedBuildInfoHook to run before register command
regHook :: PackageDescription -> LocalBuildInfo -> UserHooks -> RegisterFlags -> IO ()Over-ride this hook to get different behavior during registration.
postReg :: Args -> RegisterFlags -> PackageDescription -> LocalBuildInfo -> IO ()Hook to run after register command
preUnreg :: Args -> RegisterFlags -> IO HookedBuildInfoHook to run before unregister command
unregHook :: PackageDescription -> LocalBuildInfo -> UserHooks -> RegisterFlags -> IO ()Over-ride this hook to get different behavior during unregistration.
postUnreg :: Args -> RegisterFlags -> PackageDescription -> LocalBuildInfo -> IO ()Hook to run after unregister command
preHscolour :: Args -> HscolourFlags -> IO HookedBuildInfoHook to run before hscolour command. Second arg indicates verbosity level.
hscolourHook :: PackageDescription -> LocalBuildInfo -> UserHooks -> HscolourFlags -> IO ()Over-ride this hook to get different behavior during hscolour.
postHscolour :: Args -> HscolourFlags -> PackageDescription -> LocalBuildInfo -> IO ()Hook to run after hscolour command. Second arg indicates verbosity level.
preHaddock :: Args -> HaddockFlags -> IO HookedBuildInfoHook to run before haddock command. Second arg indicates verbosity level.
haddockHook :: PackageDescription -> LocalBuildInfo -> UserHooks -> HaddockFlags -> IO ()Over-ride this hook to get different behavior during haddock.
postHaddock :: Args -> HaddockFlags -> PackageDescription -> LocalBuildInfo -> IO ()Hook to run after haddock command. Second arg indicates verbosity level.
preTest :: Args -> TestFlags -> IO HookedBuildInfoHook to run before test command.
testHook :: Args -> PackageDescription -> LocalBuildInfo -> UserHooks -> TestFlags -> IO ()Over-ride this hook to get different behavior during test.
postTest :: Args -> TestFlags -> PackageDescription -> LocalBuildInfo -> IO ()Hook to run after test command.
preBench :: Args -> BenchmarkFlags -> IO HookedBuildInfoHook to run before bench command.
benchHook :: Args -> PackageDescription -> LocalBuildInfo -> UserHooks -> BenchmarkFlags -> IO ()Over-ride this hook to get different behavior during bench.
postBench :: Args -> BenchmarkFlags -> PackageDescription -> LocalBuildInfo -> IO ()Hook to run after bench command.