shrun
Safe HaskellNone
LanguageGHC2021

Shrun

Description

This module is the entry point to the Shrun library used by the Shrun executable.

Synopsis

Documentation

data ShellT env (m :: Type -> Type) a Source #

ShellT is the main application type that runs shell commands.

Instances

Instances details
Monad m => MonadReader env (ShellT env m) Source # 
Instance details

Defined in Shrun.ShellT

Methods

ask :: ShellT env m env #

local :: (env -> env) -> ShellT env m a -> ShellT env m a #

reader :: (env -> a) -> ShellT env m a #

MonadAsync m => MonadAsync (ShellT env m) Source # 
Instance details

Defined in Shrun.ShellT

Methods

withAsync :: HasCallStack => ShellT env m a -> (Async a -> ShellT env m b) -> ShellT env m b Source #

withAsyncBound :: HasCallStack => ShellT env m a -> (Async a -> ShellT env m b) -> ShellT env m b Source #

withAsyncOn :: HasCallStack => Int -> ShellT env m a -> (Async a -> ShellT env m b) -> ShellT env m b Source #

withAsyncWithUnmask :: HasCallStack => ((forall c. ShellT env m c -> ShellT env m c) -> ShellT env m a) -> (Async a -> ShellT env m b) -> ShellT env m b Source #

withAsyncOnWithUnmask :: HasCallStack => Int -> ((forall c. ShellT env m c -> ShellT env m c) -> ShellT env m a) -> (Async a -> ShellT env m b) -> ShellT env m b Source #

wait :: HasCallStack => Async a -> ShellT env m a Source #

poll :: HasCallStack => Async a -> ShellT env m (Maybe (Either SomeException a)) Source #

waitCatch :: HasCallStack => Async a -> ShellT env m (Either SomeException a) Source #

cancel :: HasCallStack => Async a -> ShellT env m () Source #

uninterruptibleCancel :: HasCallStack => Async a -> ShellT env m () Source #

cancelWith :: (Exception e, HasCallStack) => Async a -> e -> ShellT env m () Source #

race :: HasCallStack => ShellT env m a -> ShellT env m b -> ShellT env m (Either a b) Source #

concurrently :: HasCallStack => ShellT env m a -> ShellT env m b -> ShellT env m (a, b) Source #

concurrently_ :: HasCallStack => ShellT env m a -> ShellT env m b -> ShellT env m () Source #

waitAny :: HasCallStack => [Async a] -> ShellT env m (Async a, a) Source #

waitAnyCatch :: HasCallStack => [Async a] -> ShellT env m (Async a, Either SomeException a) Source #

waitAnyCancel :: HasCallStack => [Async a] -> ShellT env m (Async a, a) Source #

waitAnyCatchCancel :: HasCallStack => [Async a] -> ShellT env m (Async a, Either SomeException a) Source #

waitEither :: HasCallStack => Async a -> Async b -> ShellT env m (Either a b) Source #

waitEitherCatch :: HasCallStack => Async a -> Async b -> ShellT env m (Either (Either SomeException a) (Either SomeException b)) Source #

waitEitherCancel :: HasCallStack => Async a -> Async b -> ShellT env m (Either a b) Source #

waitEitherCatchCancel :: HasCallStack => Async a -> Async b -> ShellT env m (Either (Either SomeException a) (Either SomeException b)) Source #

waitEither_ :: HasCallStack => Async a -> Async b -> ShellT env m () Source #

waitBoth :: HasCallStack => Async a -> Async b -> ShellT env m (a, b) Source #

async :: HasCallStack => ShellT env m a -> ShellT env m (Async a) Source #

asyncBound :: HasCallStack => ShellT env m a -> ShellT env m (Async a) Source #

asyncOn :: HasCallStack => Int -> ShellT env m a -> ShellT env m (Async a) Source #

asyncWithUnmask :: HasCallStack => ((forall b. ShellT env m b -> ShellT env m b) -> ShellT env m a) -> ShellT env m (Async a) Source #

asyncOnWithUnmask :: HasCallStack => Int -> ((forall b. ShellT env m b -> ShellT env m b) -> ShellT env m a) -> ShellT env m (Async a) Source #

link :: HasCallStack => Async a -> ShellT env m () Source #

linkOnly :: HasCallStack => (SomeException -> Bool) -> Async a -> ShellT env m () Source #

link2 :: HasCallStack => Async a -> Async b -> ShellT env m () Source #

link2Only :: HasCallStack => (SomeException -> Bool) -> Async a -> Async b -> ShellT env m () Source #

pooledMapConcurrentlyN :: (HasCallStack, Traversable t) => Positive Int -> (a -> ShellT env m b) -> t a -> ShellT env m (t b) Source #

pooledMapConcurrently :: (HasCallStack, Traversable t) => (a -> ShellT env m b) -> t a -> ShellT env m (t b) Source #

pooledMapConcurrentlyN_ :: (Foldable f, HasCallStack) => Positive Int -> (a -> ShellT env m b) -> f a -> ShellT env m () Source #

pooledMapConcurrently_ :: (Foldable f, HasCallStack) => (a -> ShellT env m b) -> f a -> ShellT env m () Source #

MonadEvaluate m => MonadEvaluate (ShellT env m) Source # 
Instance details

Defined in Shrun.ShellT

Methods

evaluate :: HasCallStack => a -> ShellT env m a Source #

MonadFileReader m => MonadFileReader (ShellT env m) Source # 
Instance details

Defined in Shrun.ShellT

MonadFileWriter m => MonadFileWriter (ShellT env m) Source # 
Instance details

Defined in Shrun.ShellT

MonadHandleReader m => MonadHandleReader (ShellT env m) Source # 
Instance details

Defined in Shrun.ShellT

Methods

openBinaryFile :: OsPath -> ShellT env m (Handle 'HandleModeRead) Source #

withBinaryFile :: HasCallStack => OsPath -> (Handle 'HandleModeRead -> ShellT env m a) -> ShellT env m a Source #

hClose :: forall (p :: HandleMode). (CanRead p, HasCallStack) => Handle p -> ShellT env m () Source #

hFlush :: forall (p :: HandleMode). (CanRead p, HasCallStack) => Handle p -> ShellT env m () Source #

hIsEOF :: forall (p :: HandleMode). (CanRead p, HasCallStack) => Handle p -> ShellT env m Bool Source #

hGetBuffering :: forall (p :: HandleMode). (CanRead p, HasCallStack) => Handle p -> ShellT env m BufferMode Source #

hIsOpen :: forall (p :: HandleMode). (CanRead p, HasCallStack) => Handle p -> ShellT env m Bool Source #

hIsClosed :: forall (p :: HandleMode). (CanRead p, HasCallStack) => Handle p -> ShellT env m Bool Source #

hIsReadable :: forall (p :: HandleMode). (CanRead p, HasCallStack) => Handle p -> ShellT env m Bool Source #

hIsWritable :: forall (p :: HandleMode). (CanRead p, HasCallStack) => Handle p -> ShellT env m Bool Source #

hIsSeekable :: forall (p :: HandleMode). (CanRead p, HasCallStack) => Handle p -> ShellT env m Bool Source #

hIsTerminalDevice :: forall (p :: HandleMode). (CanRead p, HasCallStack) => Handle p -> ShellT env m Bool Source #

hGetEcho :: forall (p :: HandleMode). (CanRead p, HasCallStack) => Handle p -> ShellT env m Bool Source #

hWaitForInput :: forall (p :: HandleMode). (CanRead p, HasCallStack) => Handle p -> Int -> ShellT env m Bool Source #

hReady :: forall (p :: HandleMode). (CanRead p, HasCallStack) => Handle p -> ShellT env m Bool Source #

hGetChar :: forall (p :: HandleMode). (CanRead p, HasCallStack) => Handle p -> ShellT env m Char Source #

hGetLine :: forall (p :: HandleMode). (CanRead p, HasCallStack) => Handle p -> ShellT env m ByteString Source #

hGetContents :: forall (p :: HandleMode). (CanRead p, HasCallStack) => Handle p -> ShellT env m ByteString Source #

hGet :: forall (p :: HandleMode). (CanRead p, HasCallStack) => Handle p -> Int -> ShellT env m ByteString Source #

hGetSome :: forall (p :: HandleMode). (CanRead p, HasCallStack) => Handle p -> Int -> ShellT env m ByteString Source #

hGetNonBlocking :: forall (p :: HandleMode). (CanRead p, HasCallStack) => Handle p -> Int -> ShellT env m ByteString Source #

hLockRaw :: forall (p :: HandleMode). (CanRead p, HasCallStack) => Handle p -> ShellT env m () Source #

hTryLockRaw :: forall (p :: HandleMode). (CanRead p, HasCallStack) => Handle p -> ShellT env m Bool Source #

hUnlockRaw :: forall (p :: HandleMode). (CanRead p, HasCallStack) => Handle p -> ShellT env m () Source #

MonadHandleWriter m => MonadHandleWriter (ShellT env m) Source # 
Instance details

Defined in Shrun.ShellT

Methods

openBinaryFile :: OsPath -> Bool -> ShellT env m (Handle 'HandleModeWrite) Source #

withBinaryFile :: HasCallStack => OsPath -> Bool -> (Handle 'HandleModeWrite -> ShellT env m a) -> ShellT env m a Source #

hClose :: forall (p :: HandleMode). (CanWrite p, HasCallStack) => Handle p -> ShellT env m () Source #

hFlush :: forall (p :: HandleMode). (CanWrite p, HasCallStack) => Handle p -> ShellT env m () Source #

hSetFileSize :: forall (p :: HandleMode). (CanWrite p, HasCallStack) => Handle p -> Integer -> ShellT env m () Source #

hSetBuffering :: forall (p :: HandleMode). (CanWrite p, HasCallStack) => Handle p -> BufferMode -> ShellT env m () Source #

hSeek :: forall (p :: HandleMode). (CanWrite p, HasCallStack) => Handle p -> SeekMode -> Integer -> ShellT env m () Source #

hTell :: forall (p :: HandleMode). (CanWrite p, HasCallStack) => Handle p -> ShellT env m Integer Source #

hSetEcho :: forall (p :: HandleMode). (CanWrite p, HasCallStack) => Handle p -> Bool -> ShellT env m () Source #

hPut :: forall (p :: HandleMode). (CanWrite p, HasCallStack) => Handle p -> ByteString -> ShellT env m () Source #

hPutNonBlocking :: forall (p :: HandleMode). (CanWrite p, HasCallStack) => Handle p -> ByteString -> ShellT env m ByteString Source #

hLockRaw :: forall (p :: HandleMode). (CanWrite p, HasCallStack) => Handle p -> ShellT env m () Source #

hTryLockRaw :: forall (p :: HandleMode). (CanWrite p, HasCallStack) => Handle p -> ShellT env m Bool Source #

hUnlockRaw :: forall (p :: HandleMode). (CanWrite p, HasCallStack) => Handle p -> ShellT env m () Source #

MonadPathReader m => MonadPathReader (ShellT env m) Source # 
Instance details

Defined in Shrun.ShellT

Methods

listDirectory :: OsPath -> ShellT env m [OsPath] Source #

getDirectoryContents :: OsPath -> ShellT env m [OsPath] Source #

getCurrentDirectory :: ShellT env m OsPath Source #

getHomeDirectory :: ShellT env m OsPath Source #

getXdgDirectory :: XdgDirectory -> OsPath -> ShellT env m OsPath Source #

getXdgDirectoryList :: XdgDirectoryList -> ShellT env m [OsPath] Source #

getAppUserDataDirectory :: OsPath -> ShellT env m OsPath Source #

getUserDocumentsDirectory :: ShellT env m OsPath Source #

getTemporaryDirectory :: ShellT env m OsPath Source #

getFileSize :: OsPath -> ShellT env m Integer Source #

canonicalizePath :: OsPath -> ShellT env m OsPath Source #

makeAbsolute :: OsPath -> ShellT env m OsPath Source #

makeRelativeToCurrentDirectory :: OsPath -> ShellT env m OsPath Source #

doesPathExist :: OsPath -> ShellT env m Bool Source #

doesFileExist :: OsPath -> ShellT env m Bool Source #

doesDirectoryExist :: OsPath -> ShellT env m Bool Source #

findExecutable :: OsPath -> ShellT env m (Maybe OsPath) Source #

findExecutables :: OsPath -> ShellT env m [OsPath] Source #

findExecutablesInDirectories :: [OsPath] -> OsPath -> ShellT env m [OsPath] Source #

findFileWith :: (OsPath -> ShellT env m Bool) -> [OsPath] -> OsPath -> ShellT env m (Maybe OsPath) Source #

findFilesWith :: (OsPath -> ShellT env m Bool) -> [OsPath] -> OsPath -> ShellT env m [OsPath] Source #

pathIsSymbolicLink :: OsPath -> ShellT env m Bool Source #

getSymbolicLinkTarget :: OsPath -> ShellT env m OsPath Source #

getPermissions :: OsPath -> ShellT env m Permissions Source #

getAccessTime :: OsPath -> ShellT env m UTCTime Source #

getModificationTime :: OsPath -> ShellT env m UTCTime Source #

MonadPathWriter m => MonadPathWriter (ShellT env m) Source # 
Instance details

Defined in Shrun.ShellT

MonadIORef m => MonadIORef (ShellT env m) Source # 
Instance details

Defined in Shrun.ShellT

Methods

newIORef :: HasCallStack => a -> ShellT env m (IORef a) Source #

newIORef' :: HasCallStack => a -> ShellT env m (IORef a) Source #

readIORef :: HasCallStack => IORef a -> ShellT env m a Source #

readIORef' :: HasCallStack => IORef a -> ShellT env m a Source #

writeIORef :: HasCallStack => IORef a -> a -> ShellT env m () Source #

writeIORef' :: HasCallStack => IORef a -> a -> ShellT env m () Source #

atomicWriteIORef :: HasCallStack => IORef a -> a -> ShellT env m () Source #

atomicWriteIORef' :: HasCallStack => IORef a -> a -> ShellT env m () Source #

modifyIORef :: HasCallStack => IORef a -> (a -> a) -> ShellT env m () Source #

modifyIORef' :: HasCallStack => IORef a -> (a -> a) -> ShellT env m () Source #

atomicModifyIORef :: HasCallStack => IORef a -> (a -> (a, b)) -> ShellT env m b Source #

atomicModifyIORef' :: HasCallStack => IORef a -> (a -> (a, b)) -> ShellT env m b Source #

MonadNotify m => MonadNotify (ShellT env m) Source # 
Instance details

Defined in Shrun.ShellT

Associated Types

type NotifyEnvF (ShellT env m) 
Instance details

Defined in Shrun.ShellT

type NotifyEnvF (ShellT env m) = NotifyEnvF (ReaderT env m)

Methods

initNotifyEnv :: NotifySystemOs -> ShellT env m (NotifyEnvF (ShellT env m)) Source #

notify :: NotifyEnvF (ShellT env m) -> Note -> ShellT env m () Source #

MonadProcess m => MonadProcess (ShellT env m) Source # 
Instance details

Defined in Shrun.ShellT

Methods

createProcess :: CreateProcess -> ShellT env m (Maybe Handle, Maybe Handle, Maybe Handle, ProcessHandle) Source #

createProcess_ :: String -> CreateProcess -> ShellT env m (Maybe Handle, Maybe Handle, Maybe Handle, ProcessHandle) Source #

callProcess :: FilePath -> [String] -> ShellT env m () Source #

callCommand :: String -> ShellT env m () Source #

spawnProcess :: FilePath -> [String] -> ShellT env m ProcessHandle Source #

spawnCommand :: String -> ShellT env m ProcessHandle Source #

readCreateProcess :: CreateProcess -> String -> ShellT env m String Source #

readProcess :: FilePath -> [String] -> String -> ShellT env m String Source #

readCreateProcessWithExitCode :: CreateProcess -> String -> ShellT env m (ExitCode, String, String) Source #

readProcessWithExitCode :: FilePath -> [String] -> String -> ShellT env m (ExitCode, String, String) Source #

withCreateProcess :: HasCallStack => CreateProcess -> (Maybe Handle -> Maybe Handle -> Maybe Handle -> ProcessHandle -> ShellT env m a) -> ShellT env m a Source #

cleanupProcess :: (Maybe Handle, Maybe Handle, Maybe Handle, ProcessHandle) -> ShellT env m () Source #

getPid :: ProcessHandle -> ShellT env m (Maybe Pid) Source #

getCurrentPid :: ShellT env m Pid Source #

waitForProcess :: ProcessHandle -> ShellT env m ExitCode Source #

getProcessExitCode :: ProcessHandle -> ShellT env m (Maybe ExitCode) Source #

terminateProcess :: ProcessHandle -> ShellT env m () Source #

interruptProcessGroupOf :: ProcessHandle -> ShellT env m () Source #

createPipe :: ShellT env m (Handle, Handle) Source #

createPipeFd :: ShellT env m (FD, FD) Source #

MonadAtomic m => MonadAtomic (ShellT env m) Source # 
Instance details

Defined in Shrun.ShellT

Methods

atomically :: HasCallStack => STM a -> ShellT env m a Source #

MonadMVar m => MonadMVar (ShellT env m) Source # 
Instance details

Defined in Shrun.ShellT

Methods

newEmptyMVar :: ShellT env m (MVar a) Source #

newMVar :: a -> ShellT env m (MVar a) Source #

newMVar' :: a -> ShellT env m (MVar a) Source #

takeMVar :: MVar a -> ShellT env m a Source #

takeMVar' :: MVar a -> ShellT env m a Source #

putMVar :: MVar a -> a -> ShellT env m () Source #

putMVar' :: MVar a -> a -> ShellT env m () Source #

tryTakeMVar :: MVar a -> ShellT env m (Maybe a) Source #

tryTakeMVar' :: MVar a -> ShellT env m (Maybe a) Source #

tryPutMVar :: MVar a -> a -> ShellT env m Bool Source #

tryPutMVar' :: MVar a -> a -> ShellT env m Bool Source #

isEmptyMVar :: MVar a -> ShellT env m Bool Source #

withMVar :: MVar a -> (a -> ShellT env m b) -> ShellT env m b Source #

withMVar' :: MVar a -> (a -> ShellT env m b) -> ShellT env m b Source #

withMVarMasked :: MVar a -> (a -> ShellT env m b) -> ShellT env m b Source #

withMVarMasked' :: MVar a -> (a -> ShellT env m b) -> ShellT env m b Source #

modifyMVar_ :: MVar a -> (a -> ShellT env m a) -> ShellT env m () Source #

modifyMVar_' :: MVar a -> (a -> ShellT env m a) -> ShellT env m () Source #

modifyMVar :: MVar a -> (a -> ShellT env m (a, b)) -> ShellT env m b Source #

modifyMVar' :: MVar a -> (a -> ShellT env m (a, b)) -> ShellT env m b Source #

modifyMVarMasked_ :: MVar a -> (a -> ShellT env m a) -> ShellT env m () Source #

modifyMVarMasked_' :: MVar a -> (a -> ShellT env m a) -> ShellT env m () Source #

modifyMVarMasked :: MVar a -> (a -> ShellT env m (a, b)) -> ShellT env m b Source #

modifyMVarMasked' :: MVar a -> (a -> ShellT env m (a, b)) -> ShellT env m b Source #

tryReadMVar :: MVar a -> ShellT env m (Maybe a) Source #

tryReadMVar' :: MVar a -> ShellT env m (Maybe a) Source #

mkWeakMVar :: MVar a -> ShellT env m () -> ShellT env m (Weak (MVar a)) Source #

MonadThread m => MonadThread (ShellT env m) Source # 
Instance details

Defined in Shrun.ShellT

MonadTime m => MonadTime (ShellT env m) Source # 
Instance details

Defined in Shrun.ShellT

MonadPosixFiles m => MonadPosixFiles (ShellT env m) Source # 
Instance details

Defined in Shrun.ShellT

Methods

setFileMode :: PosixPath -> FileMode -> ShellT env m () Source #

setFdMode :: Fd -> FileMode -> ShellT env m () Source #

setFileCreationMask :: FileMode -> ShellT env m FileMode Source #

fileAccess :: PosixPath -> Bool -> Bool -> Bool -> ShellT env m Bool Source #

fileExist :: PosixPath -> ShellT env m Bool Source #

getFileStatus :: PosixPath -> ShellT env m FileStatus Source #

getFdStatus :: Fd -> ShellT env m FileStatus Source #

getSymbolicLinkStatus :: PosixPath -> ShellT env m FileStatus Source #

createNamedPipe :: PosixPath -> FileMode -> ShellT env m () Source #

createDevice :: PosixPath -> FileMode -> DeviceID -> ShellT env m () Source #

createLink :: PosixPath -> PosixPath -> ShellT env m () Source #

removeLink :: PosixPath -> ShellT env m () Source #

createSymbolicLink :: PosixPath -> PosixPath -> ShellT env m () Source #

readSymbolicLink :: PosixPath -> ShellT env m PosixPath Source #

rename :: PosixPath -> PosixPath -> ShellT env m () Source #

setOwnerAndGroup :: PosixPath -> UserID -> GroupID -> ShellT env m () Source #

setFdOwnerAndGroup :: Fd -> UserID -> GroupID -> ShellT env m () Source #

setSymbolicLinkOwnerAndGroup :: PosixPath -> UserID -> GroupID -> ShellT env m () Source #

setFileTimes :: PosixPath -> EpochTime -> EpochTime -> ShellT env m () Source #

touchFile :: PosixPath -> ShellT env m () Source #

setFileSize :: PosixPath -> FileOffset -> ShellT env m () Source #

setFdSize :: Fd -> FileOffset -> ShellT env m () Source #

getPathVar :: PosixPath -> PathVar -> ShellT env m Limit Source #

getFdPathVar :: Fd -> PathVar -> ShellT env m Limit Source #

MonadPosixSignals m => MonadPosixSignals (ShellT env m) Source # 
Instance details

Defined in Shrun.ShellT

MonadCatch m => MonadCatch (ShellT env m) Source # 
Instance details

Defined in Shrun.ShellT

Methods

catch :: (HasCallStack, Exception e) => ShellT env m a -> (e -> ShellT env m a) -> ShellT env m a #

MonadMask m => MonadMask (ShellT env m) Source # 
Instance details

Defined in Shrun.ShellT

Methods

mask :: HasCallStack => ((forall a. ShellT env m a -> ShellT env m a) -> ShellT env m b) -> ShellT env m b #

uninterruptibleMask :: HasCallStack => ((forall a. ShellT env m a -> ShellT env m a) -> ShellT env m b) -> ShellT env m b #

generalBracket :: HasCallStack => ShellT env m a -> (a -> ExitCase b -> ShellT env m c) -> (a -> ShellT env m b) -> ShellT env m (b, c) #

MonadThrow m => MonadThrow (ShellT env m) Source # 
Instance details

Defined in Shrun.ShellT

Methods

throwM :: (HasCallStack, Exception e) => e -> ShellT env m a #

Applicative m => Applicative (ShellT env m) Source # 
Instance details

Defined in Shrun.ShellT

Methods

pure :: a -> ShellT env m a #

(<*>) :: ShellT env m (a -> b) -> ShellT env m a -> ShellT env m b #

liftA2 :: (a -> b -> c) -> ShellT env m a -> ShellT env m b -> ShellT env m c #

(*>) :: ShellT env m a -> ShellT env m b -> ShellT env m b #

(<*) :: ShellT env m a -> ShellT env m b -> ShellT env m a #

Functor m => Functor (ShellT env m) Source # 
Instance details

Defined in Shrun.ShellT

Methods

fmap :: (a -> b) -> ShellT env m a -> ShellT env m b #

(<$) :: a -> ShellT env m b -> ShellT env m a #

Monad m => Monad (ShellT env m) Source # 
Instance details

Defined in Shrun.ShellT

Methods

(>>=) :: ShellT env m a -> (a -> ShellT env m b) -> ShellT env m b #

(>>) :: ShellT env m a -> ShellT env m b -> ShellT env m b #

return :: a -> ShellT env m a #

MonadIO m => MonadIO (ShellT env m) Source # 
Instance details

Defined in Shrun.ShellT

Methods

liftIO :: IO a -> ShellT env m a #

MonadRegionLogger m => MonadRegionLogger (ShellT (Env notifyEnv r) m) Source # 
Instance details

Defined in Shrun.ShellT

Associated Types

type Region (ShellT (Env notifyEnv r) m) 
Instance details

Defined in Shrun.ShellT

type Region (ShellT (Env notifyEnv r) m) = Region (ReaderT (Env notifyEnv r) m)

Methods

logGlobal :: Text -> ShellT (Env notifyEnv r) m () Source #

logRegion :: LogMode -> Region (ShellT (Env notifyEnv r) m) -> Text -> ShellT (Env notifyEnv r) m () Source #

withRegion :: HasCallStack => RegionLayout -> (Region (ShellT (Env notifyEnv r) m) -> ShellT (Env notifyEnv r) m a) -> ShellT (Env notifyEnv r) m a Source #

displayRegions :: HasCallStack => ShellT (Env notifyEnv r) m a -> ShellT (Env notifyEnv r) m a Source #

regionList :: ShellT (Env notifyEnv r) m (TMVar [Region (ShellT (Env notifyEnv r) m)]) Source #

type NotifyEnvF (ShellT env m) Source # 
Instance details

Defined in Shrun.ShellT

type NotifyEnvF (ShellT env m) = NotifyEnvF (ReaderT env m)
type Region (ShellT (Env notifyEnv r) m) Source # 
Instance details

Defined in Shrun.ShellT

type Region (ShellT (Env notifyEnv r) m) = Region (ReaderT (Env notifyEnv r) m)

runShellT :: forall m env a. ShellT env m a -> env -> m a Source #

Runs a ShellT with the given env.

data TermException Source #

TermException is explicitly for when the current process is cancelled (SIGTERM on posix). We use a separate type so that we can distinguish it from potentially other ThreadKilleds that might be sent (e.g. bugs).

Constructors

MkTermException