module Dvda.Codegen.WriteFile ( writeSourceFile
) where
import System.Directory
import Control.Monad ( when )
writeSourceFile :: String -> FilePath -> FilePath -> IO FilePath
writeSourceFile source functionDir sourceName = do
createDirectoryIfMissing False functionDir
let sourcePath = functionDir ++ "/" ++ sourceName
srcExists <- doesFileExist sourcePath
when srcExists $ do
putStrLn $ "file \"" ++ sourcePath ++ "\" already exists, overwriting"
putStrLn $ "writing " ++ sourcePath
writeFile sourcePath source
return sourcePath