stack-0.1.8.0: The Haskell Tool Stack

Safe HaskellNone
LanguageHaskell2010

Stack.Types.StackT

Description

The monad used for the command-line executable stack.

Synopsis

Documentation

data StackT config m a Source

The monad used for the executable stack.

Instances

MonadBase b m => MonadBase b (StackT config m) Source 

Methods

liftBase :: b α -> StackT config m α

MonadBaseControl b m => MonadBaseControl b (StackT config m) Source 

Associated Types

type StM (StackT config m :: * -> *) a :: *

Methods

liftBaseWith :: (RunInBase (StackT config m) b -> b a) -> StackT config m a

restoreM :: StM (StackT config m) a -> StackT config m a

MonadTrans (StackT config) Source 

Methods

lift :: Monad m => m a -> StackT config m a

MonadTransControl (StackT config) Source 

Associated Types

type StT (StackT config :: (* -> *) -> * -> *) a :: *

Methods

liftWith :: Monad m => (Run (StackT config) -> m a) -> StackT config m a

restoreT :: Monad m => m (StT (StackT config) a) -> StackT config m a

Monad m => MonadReader (Env config) (StackT config m) Source 

Methods

ask :: StackT config m (Env config)

local :: (Env config -> Env config) -> StackT config m a -> StackT config m a

reader :: (Env config -> a) -> StackT config m a

Monad m => Monad (StackT config m) Source 

Methods

(>>=) :: StackT config m a -> (a -> StackT config m b) -> StackT config m b

(>>) :: StackT config m a -> StackT config m b -> StackT config m b

return :: a -> StackT config m a

fail :: String -> StackT config m a

Functor m => Functor (StackT config m) Source 

Methods

fmap :: (a -> b) -> StackT config m a -> StackT config m b

(<$) :: a -> StackT config m b -> StackT config m a

Applicative m => Applicative (StackT config m) Source 

Methods

pure :: a -> StackT config m a

(<*>) :: StackT config m (a -> b) -> StackT config m a -> StackT config m b

(*>) :: StackT config m a -> StackT config m b -> StackT config m b

(<*) :: StackT config m a -> StackT config m b -> StackT config m a

MonadIO m => MonadIO (StackT config m) Source 

Methods

liftIO :: IO a -> StackT config m a

MonadThrow m => MonadThrow (StackT config m) Source 

Methods

throwM :: Exception e => e -> StackT config m a

MonadCatch m => MonadCatch (StackT config m) Source 

Methods

catch :: Exception e => StackT config m a -> (e -> StackT config m a) -> StackT config m a

MonadMask m => MonadMask (StackT config m) Source 

Methods

mask :: ((forall a. StackT config m a -> StackT config m a) -> StackT config m b) -> StackT config m b

uninterruptibleMask :: ((forall a. StackT config m a -> StackT config m a) -> StackT config m b) -> StackT config m b

MonadIO m => MonadLogger (StackT config m) Source

Takes the configured log level into account.

Methods

monadLoggerLog :: ToLogStr msg => Loc -> LogSource -> LogLevel -> msg -> StackT config m ()

type StT (StackT config) a = StT (ReaderT (Env config)) a Source 
type StM (StackT config m) a = ComposeSt (StackT config) m a Source 

data StackLoggingT m a Source

The monad used for logging in the executable stack before anything has been initialized.

Instances

MonadTrans StackLoggingT Source 

Methods

lift :: Monad m => m a -> StackLoggingT m a

MonadTransControl StackLoggingT Source 

Associated Types

type StT (StackLoggingT :: (* -> *) -> * -> *) a :: *

Methods

liftWith :: Monad m => (Run StackLoggingT -> m a) -> StackLoggingT m a

restoreT :: Monad m => m (StT StackLoggingT a) -> StackLoggingT m a

MonadBase b m => MonadBase b (StackLoggingT m) Source 

Methods

liftBase :: b α -> StackLoggingT m α

MonadBaseControl b m => MonadBaseControl b (StackLoggingT m) Source 

Associated Types

type StM (StackLoggingT m :: * -> *) a :: *

Monad m => Monad (StackLoggingT m) Source 

Methods

(>>=) :: StackLoggingT m a -> (a -> StackLoggingT m b) -> StackLoggingT m b

(>>) :: StackLoggingT m a -> StackLoggingT m b -> StackLoggingT m b

return :: a -> StackLoggingT m a

fail :: String -> StackLoggingT m a

Functor m => Functor (StackLoggingT m) Source 

Methods

fmap :: (a -> b) -> StackLoggingT m a -> StackLoggingT m b

(<$) :: a -> StackLoggingT m b -> StackLoggingT m a

Applicative m => Applicative (StackLoggingT m) Source 

Methods

pure :: a -> StackLoggingT m a

(<*>) :: StackLoggingT m (a -> b) -> StackLoggingT m a -> StackLoggingT m b

(*>) :: StackLoggingT m a -> StackLoggingT m b -> StackLoggingT m b

(<*) :: StackLoggingT m a -> StackLoggingT m b -> StackLoggingT m a

MonadIO m => MonadIO (StackLoggingT m) Source 

Methods

liftIO :: IO a -> StackLoggingT m a

MonadThrow m => MonadThrow (StackLoggingT m) Source 

Methods

throwM :: Exception e => e -> StackLoggingT m a

MonadCatch m => MonadCatch (StackLoggingT m) Source 

Methods

catch :: Exception e => StackLoggingT m a -> (e -> StackLoggingT m a) -> StackLoggingT m a

MonadMask m => MonadMask (StackLoggingT m) Source 

Methods

mask :: ((forall a. StackLoggingT m a -> StackLoggingT m a) -> StackLoggingT m b) -> StackLoggingT m b

uninterruptibleMask :: ((forall a. StackLoggingT m a -> StackLoggingT m a) -> StackLoggingT m b) -> StackLoggingT m b

MonadIO m => MonadLogger (StackLoggingT m) Source

Takes the configured log level into account.

Methods

monadLoggerLog :: ToLogStr msg => Loc -> LogSource -> LogLevel -> msg -> StackLoggingT m ()

type StT StackLoggingT a Source 
type StM (StackLoggingT m) a = ComposeSt StackLoggingT m a Source 

runStackT :: (MonadIO m, MonadBaseControl IO m) => Manager -> LogLevel -> config -> Bool -> Bool -> StackT config m a -> m a Source

Run a Stack action.

runStackTGlobal :: (MonadIO m, MonadBaseControl IO m) => Manager -> config -> GlobalOpts -> StackT config m a -> m a Source

Run a Stack action, using global options.

runStackLoggingT :: MonadIO m => Manager -> LogLevel -> Bool -> Bool -> StackLoggingT m a -> m a Source

Run the logging monad.

runStackLoggingTGlobal :: MonadIO m => Manager -> GlobalOpts -> StackLoggingT m a -> m a Source

Run the logging monad, using global options.

runInnerStackT :: (HasHttpManager r, HasLogLevel r, HasTerminal r, HasReExec r, MonadReader r m, MonadIO m) => config -> StackT config IO a -> m a Source

newTLSManager :: MonadIO m => m Manager Source

Convenience for getting a Manager

logSticky :: Q Exp Source

Write a "sticky" line to the terminal. Any subsequent lines will overwrite this one, and that same line will be repeated below again. In other words, the line sticks at the bottom of the output forever. Running this function again will replace the sticky line with a new sticky line. When you want to get rid of the sticky line, run logStickyDone.

logStickyDone :: Q Exp Source

This will print out the given message with a newline and disable any further stickiness of the line until a new call to logSticky happens.

It might be better at some point to have a runSticky function that encompasses the logSticky->logStickyDone pairing.