| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
BuildEnv.Utils
Description
Various utilities:
- Spawning of processes in particular environments; see
callProcessInIO. - Semaphores.
Synopsis
- data ProgPath from
- = AbsPath {
- absProgPath :: !(AbsolutePath File)
- | RelPath {
- relProgPath :: !(SymbolicPath from File)
- = AbsPath {
- data CallProcess dir = CP {
- cwd :: !(SymbolicPath CWD (Dir dir))
- extraPATH :: ![FilePath]
- extraEnvVars :: ![(String, String)]
- prog :: !(ProgPath dir)
- args :: !Args
- logBasePath :: !(Maybe (AbsolutePath File))
- sem :: !AbstractSem
- callProcessInIO :: HasCallStack => Maybe Counter -> CallProcess dir -> IO ()
- data TempDirPermanence
- withTempDir :: TempDirPermanence -> String -> (AbsolutePath (Dir Tmp) -> IO a) -> IO a
- newtype AbstractSem = AbstractSem {
- withAbstractSem :: forall r. IO r -> IO r
- withNewAbstractSem :: AsyncSem -> (AbstractSem -> Args -> IO r) -> IO r
- noSem :: AbstractSem
- abstractQSem :: QSem -> AbstractSem
- splitOn :: Char -> String -> [String]
Call a process in a given environment
The path of a program to run.
Constructors
| AbsPath | An absolute path, or an executable in |
Fields
| |
| RelPath | A relative path, relative to the |
Fields
| |
data CallProcess dir Source #
Arguments to callProcess.
Constructors
| CP | |
Fields
| |
Arguments
| :: HasCallStack | |
| => Maybe Counter | Optional counter. Used when the command fails, to report the progress that has been made so far. |
| -> CallProcess dir | |
| -> IO () |
Run a command and wait for it to complete.
Crashes if the process returns with non-zero exit code.
See CallProcess for a description of the options.
Create temporary directories
data TempDirPermanence Source #
How to handle deletion of temporary directories.
Constructors
| DeleteTempDirs | |
| Don'tDeleteTempDirs |
Instances
| Show TempDirPermanence Source # | |
Defined in BuildEnv.Config Methods showsPrec :: Int -> TempDirPermanence -> ShowS # show :: TempDirPermanence -> String # showList :: [TempDirPermanence] -> ShowS # | |
Arguments
| :: TempDirPermanence | whether to delete the temporary directory after the action completes |
| -> String | directory name template |
| -> (AbsolutePath (Dir Tmp) -> IO a) | action to perform |
| -> IO a |
Perform an action with a fresh temporary directory.
Abstract semaphores
newtype AbstractSem Source #
Abstract acquire/release mechanism.
Constructors
| AbstractSem | |
Fields
| |
Arguments
| :: AsyncSem | |
| -> (AbstractSem -> Args -> IO r) | the abstract semaphore to use, and extra
arguments to pass to |
| -> IO r |
Create a semaphore-based acquire/release mechanism.
noSem :: AbstractSem Source #
No acquire/release mechanism required.
abstractQSem :: QSem -> AbstractSem Source #
Abstract acquire/release mechanism controlled by the given QSem.