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