hie-bios-0.12.0: Set up a GHC API session

Safe Haskell | Safe-Inferred
Language | Haskell2010

HIE.Bios.Cradle

Synopsis

- findCradle :: FilePath -> IO (Maybe FilePath)
- loadCradle :: FilePath -> IO (Cradle Void)
- loadImplicitCradle :: Show a => FilePath -> IO (Cradle a)
- yamlConfig :: FilePath -> MaybeT IO FilePath
- defaultCradle :: FilePath -> Cradle a
- isCabalCradle :: Cradle a -> Bool
- isStackCradle :: Cradle a -> Bool
- isDirectCradle :: Cradle a -> Bool
- isBiosCradle :: Cradle a -> Bool
- isNoneCradle :: Cradle a -> Bool
- isMultiCradle :: Cradle a -> Bool
- isDefaultCradle :: Cradle a -> Bool
- isOtherCradle :: Cradle a -> Bool
- getCradle :: (b -> Cradle a) -> (CradleConfig b, FilePath) -> Cradle a
- readProcessWithOutputs :: Outputs -> LogAction IO (WithSeverity Log) -> FilePath -> CreateProcess -> IO (ExitCode, [String], [String], [(OutputName, Maybe [String])])
- readProcessWithCwd :: LogAction IO (WithSeverity Log) -> FilePath -> FilePath -> [String] -> String -> IO (CradleLoadResult String)
- makeCradleResult :: (ExitCode, [String], FilePath, [String]) -> [FilePath] -> CradleLoadResult ComponentOptions

# Documentation

findCradle :: FilePath -> IO (Maybe FilePath) #

Given root/foo/bar.hs, return root/hie.yaml, or wherever the yaml file was found.

loadCradle :: FilePath -> IO (Cradle Void) #

Given root/hie.yaml load the Cradle.

loadImplicitCradle :: Show a => FilePath -> IO (Cradle a) #

Given root/foo/bar.hs, load an implicit cradle

yamlConfig :: FilePath -> MaybeT IO FilePath #

defaultCradle :: FilePath -> Cradle a #

Default cradle has no special options, not very useful for loading modules.

isCabalCradle :: Cradle a -> Bool #

isStackCradle :: Cradle a -> Bool #

isDirectCradle :: Cradle a -> Bool #

isBiosCradle :: Cradle a -> Bool #

isNoneCradle :: Cradle a -> Bool #

isMultiCradle :: Cradle a -> Bool #

isDefaultCradle :: Cradle a -> Bool #

isOtherCradle :: Cradle a -> Bool #

getCradle :: (b -> Cradle a) -> (CradleConfig b, FilePath) -> Cradle a #

readProcessWithOutputs #

Arguments

:: Outputs | Names of the outputs produced by this process
-> LogAction IO (WithSeverity Log) | Output of the process is emitted as logs.
-> FilePath | Working directory. Process is executed in this directory.
-> CreateProcess | Parameters for the process to be executed.
-> IO (ExitCode, [String], [String], [(OutputName, Maybe [String])]) |

Call a given process with temp files for the process to write to. * The process can discover the temp files paths by reading the environment. * The contents of the temp files are returned by this function, if any. * The logging function is called every time the process emits anything to stdout or stderr. it can be used to report progress of the process to a user. * The process is executed in the given directory.

readProcessWithCwd :: LogAction IO (WithSeverity Log) -> FilePath -> FilePath -> [String] -> String -> IO (CradleLoadResult String) #

Wrapper around `readCreateProcess` that sets the working directory and clears the environment, suitable for invoking cabal/stack and raw ghc commands.

makeCradleResult :: (ExitCode, [String], FilePath, [String]) -> [FilePath] -> CradleLoadResult ComponentOptions #