ddc-driver-0.4.2.1: DDC/Driver/Dump.hs
module DDC.Driver.Dump
(dump)
where
import DDC.Driver.Config
import DDC.Driver.Interface.Source
import DDC.Build.Pipeline
import System.FilePath
import Data.Maybe
-- | If the Dump mode is set
-- then produce a SinkFile to write a module to a file,
-- otherwise produce SinkDiscard to drop it on the floor.
dump :: Config -> Source -> String -> Sink
dump config source dumpFile
| configDump config
= let outputDir
| SourceFile filePath <- source
= fromMaybe (takeDirectory filePath)
(configOutputDir config)
| otherwise
= fromMaybe "."
(configOutputDir config)
in SinkFile $ outputDir </> dumpFile
| otherwise
= SinkDiscard