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:
parent
446978c1e6
commit
27619497ec
1 changed files with 8 additions and 1 deletions
|
@ -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]
|
||||
|
|
Loading…
Add table
Reference in a new issue