ddc-build-0.3.2.1: DDC/Build/Pipeline/Sink.hs
module DDC.Build.Pipeline.Sink
( Sink(..)
, pipeSink)
where
import DDC.Build.Pipeline.Error
-- | What to do with program text.
data Sink
-- | Drop it on the floor.
= SinkDiscard
-- | Emit it to stdout.
| SinkStdout
-- | Write it to this file.
| SinkFile FilePath
deriving (Show)
-- | Emit a string to the given `Sink`.
pipeSink :: String -> Sink -> IO [Error]
pipeSink !str !tg
= case tg of
SinkDiscard
-> do return []
SinkStdout
-> do putStrLn str
return []
SinkFile path
-> do writeFile path str
return []