wordify-0.1.0.0: test/Tests/Utils.hs
module Tests.Utils (withTempFile) where
import Control.Exception (bracket)
import System.IO (Handle, hClose, hFlush, hIsOpen, hIsWritable, openTempFile)
import Control.Monad (when)
import System.Directory (removeFile, getTemporaryDirectory)
withTempFile :: (FilePath -> Handle -> IO a) -> IO a
withTempFile = bracket (getTemporaryDirectory >>= \tempDir -> openTempFile tempDir "scrabbleTest.txt") cleanupTemp . uncurry
where
cleanupTemp (path,h) = do
open <- hIsOpen h
when open (hClose h)
removeFile path