module IO
    ( maybeReplaceFile
    , maybeRenameFile
    , maybeRemoveFile
    ) where

import System.Directory

maybeReplaceFile path text =
    maybeRemoveFile path >>
    writeFile path text

maybeRemoveFile path =
    doesFileExist path >>=
    \ flag -> if flag then removeFile path else return ()

maybeRenameFile oldName newName =
    maybeRemoveFile newName >>
    doesFileExist oldName >>=
    \ flag -> if flag then renameFile oldName newName else return ()

