shrun
Safe HaskellNone
LanguageGHC2021

Shrun.Configuration.Data.FileLogging

Contents

Synopsis

Documentation

data FileLogInitP (p :: ConfigPhase) Source #

Initial file log params, for usage before we create the final Env.

Constructors

MkFileLogInitP 

Fields

Instances

Instances details
(k ~ A_Lens, a ~ FileLogPathF p, b ~ FileLogPathF p) => LabelOptic "path" k (FileLogInitP p) (FileLogInitP p) a b Source # 
Instance details

Defined in Shrun.Configuration.Data.FileLogging

(k ~ A_Lens, a ~ ConfigPhaseF p FileSizeMode, b ~ ConfigPhaseF p FileSizeMode) => LabelOptic "sizeMode" k (FileLogInitP p) (FileLogInitP p) a b Source # 
Instance details

Defined in Shrun.Configuration.Data.FileLogging

data FileLogOpened Source #

Params after we have opened the file for logging.

Constructors

MkFileLogOpened 

Fields

data FileLoggingP (p :: ConfigPhase) Source #

Holds file logging config.

Constructors

MkFileLoggingP 

Fields

Instances

Instances details
Monoid FileLoggingToml Source # 
Instance details

Defined in Shrun.Configuration.Data.FileLogging

Semigroup FileLoggingToml Source # 
Instance details

Defined in Shrun.Configuration.Data.FileLogging

Pretty FileLoggingMerged Source # 
Instance details

Defined in Shrun.Configuration.Data.FileLogging

Default FileLoggingArgs Source # 
Instance details

Defined in Shrun.Configuration.Data.FileLogging

DecodeTOML FileLoggingToml Source # 
Instance details

Defined in Shrun.Configuration.Data.FileLogging

(k ~ A_Lens, a ~ ConfigPhaseDisabledMaybeF p (Truncation 'TruncCommandName), b ~ ConfigPhaseDisabledMaybeF p (Truncation 'TruncCommandName)) => LabelOptic "commandNameTrunc" k (FileLoggingP p) (FileLoggingP p) a b Source # 
Instance details

Defined in Shrun.Configuration.Data.FileLogging

(k ~ A_Lens, a ~ SwitchF p DeleteOnSuccessSwitch, b ~ SwitchF p DeleteOnSuccessSwitch) => LabelOptic "deleteOnSuccess" k (FileLoggingP p) (FileLoggingP p) a b Source # 
Instance details

Defined in Shrun.Configuration.Data.FileLogging

(k ~ A_Lens, a ~ FileLogFileF p, b ~ FileLogFileF p) => LabelOptic "file" k (FileLoggingP p) (FileLoggingP p) a b Source # 
Instance details

Defined in Shrun.Configuration.Data.FileLogging

(k ~ A_Lens, a ~ LineTruncF p, b ~ LineTruncF p) => LabelOptic "lineTrunc" k (FileLoggingP p) (FileLoggingP p) a b Source # 
Instance details

Defined in Shrun.Configuration.Data.FileLogging

(k ~ A_Lens, a ~ ConfigPhaseF p FileMode, b ~ ConfigPhaseF p FileMode) => LabelOptic "mode" k (FileLoggingP p) (FileLoggingP p) a b Source # 
Instance details

Defined in Shrun.Configuration.Data.FileLogging

(k ~ A_Lens, a ~ FileLogMultiF p, b ~ FileLogMultiF p) => LabelOptic "multi" k (FileLoggingP p) (FileLoggingP p) a b Source # 
Instance details

Defined in Shrun.Configuration.Data.FileLogging

(k ~ A_Lens, a ~ ConfigPhaseF p FileLogStripControl, b ~ ConfigPhaseF p FileLogStripControl) => LabelOptic "stripControl" k (FileLoggingP p) (FileLoggingP p) a b Source # 
Instance details

Defined in Shrun.Configuration.Data.FileLogging

Show (FileLoggingP 'ConfigPhaseArgs) Source # 
Instance details

Defined in Shrun.Configuration.Data.FileLogging

Show (FileLoggingP 'ConfigPhaseMerged) Source # 
Instance details

Defined in Shrun.Configuration.Data.FileLogging

Show (FileLoggingP 'ConfigPhaseToml) Source # 
Instance details

Defined in Shrun.Configuration.Data.FileLogging

Eq (FileLoggingP 'ConfigPhaseArgs) Source # 
Instance details

Defined in Shrun.Configuration.Data.FileLogging

Eq (FileLoggingP 'ConfigPhaseMerged) Source # 
Instance details

Defined in Shrun.Configuration.Data.FileLogging

Eq (FileLoggingP 'ConfigPhaseToml) Source # 
Instance details

Defined in Shrun.Configuration.Data.FileLogging

newtype DeleteOnSuccessSwitch Source #

Switch for deleting the log file upon success.

Instances

Instances details
Bounded DeleteOnSuccessSwitch Source # 
Instance details

Defined in Shrun.Configuration.Data.FileLogging

Enum DeleteOnSuccessSwitch Source # 
Instance details

Defined in Shrun.Configuration.Data.FileLogging

Show DeleteOnSuccessSwitch Source # 
Instance details

Defined in Shrun.Configuration.Data.FileLogging

Eq DeleteOnSuccessSwitch Source # 
Instance details

Defined in Shrun.Configuration.Data.FileLogging

Pretty DeleteOnSuccessSwitch Source # 
Instance details

Defined in Shrun.Configuration.Data.FileLogging

Default DeleteOnSuccessSwitch Source # 
Instance details

Defined in Shrun.Configuration.Data.FileLogging

DecodeTOML DeleteOnSuccessSwitch Source # 
Instance details

Defined in Shrun.Configuration.Data.FileLogging

(k ~ An_Iso, a ~ Bool, b ~ Bool) => LabelOptic "unDeleteOnSuccessSwitch" k DeleteOnSuccessSwitch DeleteOnSuccessSwitch a b Source # 
Instance details

Defined in Shrun.Configuration.Data.FileLogging

newtype FileLogMultiSwitch Source #

Switch for logging to multiple files.

Instances

Instances details
Bounded FileLogMultiSwitch Source # 
Instance details

Defined in Shrun.Configuration.Data.FileLogging

Enum FileLogMultiSwitch Source # 
Instance details

Defined in Shrun.Configuration.Data.FileLogging

Show FileLogMultiSwitch Source # 
Instance details

Defined in Shrun.Configuration.Data.FileLogging

Eq FileLogMultiSwitch Source # 
Instance details

Defined in Shrun.Configuration.Data.FileLogging

Pretty FileLogMultiSwitch Source # 
Instance details

Defined in Shrun.Configuration.Data.FileLogging

Default FileLogMultiSwitch Source # 
Instance details

Defined in Shrun.Configuration.Data.FileLogging

DecodeTOML FileLogMultiSwitch Source # 
Instance details

Defined in Shrun.Configuration.Data.FileLogging

(k ~ An_Iso, a ~ Bool, b ~ Bool) => LabelOptic "unFileLogMultiSwitch" k FileLogMultiSwitch FileLogMultiSwitch a b Source # 
Instance details

Defined in Shrun.Configuration.Data.FileLogging

withFileLoggingEnv :: (HasCallStack, MonadAtomic m, MonadFileWriter m, MonadHandleWriter m, MonadMask m, MonadPathReader m, MonadPathWriter m, MonadPosixFiles m, MonadTerminal m) => Maybe FileLoggingMerged -> (Maybe FileLoggingEnv -> m a) -> m a Source #

Given merged FileLogging config, constructs a FileLoggingEnv and calls the continuation.

Misc

createMultiLogFile :: (HasCallStack, MonadAtomic m, MonadHandleWriter m, MonadPathReader m, MonadPosixFiles m, MonadThrow m) => TVar Word16 -> FileMode -> OsPath -> m OsPath Source #

Like createLogFile, but for multi logs, which has different semantics.

While we allow overwriting / appending to existing files, what we absolutely do not want to allow is two shrun commands actively logging to the same file. This would mean logs get jumbled up.

Therefore, if we encounter an extant file, we use the TVar counter to append a number. This index is unique across all shrun commands, hence we will not have interference.