dvda-0.3: Dvda/Codegen/WriteFile.hs
{-# OPTIONS_GHC -Wall #-}
module Dvda.Codegen.WriteFile ( writeSourceFile
) where
import System.Directory
import Control.Monad ( when )
---- | return directory to use for temp files
---- | create this directory and print message if it doesn't exist
--dvdaDir :: IO FilePath
--dvdaDir = do
-- dir <- getAppUserDataDirectory "dvda"
writeSourceFile :: String -> FilePath -> FilePath -> IO FilePath
writeSourceFile source functionDir sourceName = do
-- make function directory if it doesn't exist
createDirectoryIfMissing False functionDir
-- filenames
let sourcePath = functionDir ++ "/" ++ sourceName
-- if the source already exists, make sure it matches the old source
srcExists <- doesFileExist sourcePath
when srcExists $ do
putStrLn $ "file \"" ++ sourcePath ++ "\" already exists, overwriting"
-- write source
putStrLn $ "writing " ++ sourcePath
writeFile sourcePath source
return sourcePath