remove file before running cp

This way, if a temp file was left behind, and permissions don't allow it
to be written, cp won't fail.
This commit is contained in:
Joey Hess 2011-01-04 22:17:18 -04:00
parent 446978c1e6
commit 27619497ec

View file

@ -7,13 +7,20 @@
module CopyFile (copyFile) where
import Control.Monad (when)
import System.Directory (doesFileExist, removeFile)
import Utility
import qualified SysConfig
{- The cp command is used, because I hate reinventing the wheel,
- and because this allows easy access to features like cp --reflink. -}
copyFile :: FilePath -> FilePath -> IO Bool
copyFile src dest = boolSystem "cp" opts
copyFile src dest = do
e <- doesFileExist dest
when e $
removeFile dest
boolSystem "cp" opts
where
opts = if SysConfig.cp_reflink_auto
then ["--reflink=auto", src, dest]