LIB: make deleteDirRecursive more robust
We now try 'deleteDir' first and only start recursive removal if that fails.
This commit is contained in:
parent
4a86b4d2cf
commit
6ec455b515
@ -71,8 +71,10 @@ import Data.Word
|
||||
)
|
||||
import Foreign.C.Error
|
||||
(
|
||||
eINVAL
|
||||
eEXIST
|
||||
, eINVAL
|
||||
, eNOSYS
|
||||
, eNOTEMPTY
|
||||
, eXDEV
|
||||
)
|
||||
import Foreign.C.Types
|
||||
@ -416,7 +418,10 @@ deleteDir p = P.withAbsPath p removeDirectory
|
||||
-- * not atomic
|
||||
-- * examines filetypes explicitly
|
||||
deleteDirRecursive :: Path Abs -> IO ()
|
||||
deleteDirRecursive p = do
|
||||
deleteDirRecursive p =
|
||||
catchErrno [eNOTEMPTY, eEXIST]
|
||||
(deleteDir p)
|
||||
$ do
|
||||
files <- getDirsFiles p
|
||||
for_ files $ \file -> do
|
||||
ftype <- getFileType file
|
||||
|
Loading…
Reference in New Issue
Block a user