diff options
author | Ben Gamari <ben@smart-cactus.org> | 2019-06-03 22:24:17 (GMT) |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2019-06-03 22:38:21 (GMT) |
commit | 29478eb3b83b05420fa04a9324c6a0b9e0f85382 (patch) | |
tree | c729e4a16f9512eea9dc6b56c639a574c743e6de | |
parent | 799b1d26977b5841aa580e07c8f8e65356eed785 (diff) | |
download | ghc-wip/hadrian-delete-symlinks.zip ghc-wip/hadrian-delete-symlinks.tar.gz ghc-wip/hadrian-delete-symlinks.tar.bz2 |
Hadrian: Delete target symlink in createFileLinkUntrackedwip/hadrian-delete-symlinks
Previously createFileLinkUntracked would fail if the symlink already
existed.
-rw-r--r-- | hadrian/src/Hadrian/Utilities.hs | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/hadrian/src/Hadrian/Utilities.hs b/hadrian/src/Hadrian/Utilities.hs index e8bf793..a1386e6 100644 --- a/hadrian/src/Hadrian/Utilities.hs +++ b/hadrian/src/Hadrian/Utilities.hs @@ -34,6 +34,7 @@ module Hadrian.Utilities ( Dynamic, fromDynamic, toDyn, TypeRep, typeOf ) where +import Control.Applicative import Control.Monad.Extra import Data.Char import Data.Dynamic (Dynamic, fromDynamic, toDyn) @@ -296,7 +297,9 @@ createFileLinkUntracked linkTarget link = do let dir = takeDirectory link liftIO $ IO.createDirectoryIfMissing True dir putProgressInfo =<< renderCreateFileLink linkTarget link - quietly . liftIO $ IO.createFileLink linkTarget link + quietly . liftIO $ do + IO.removeFile link <|> return () + IO.createFileLink linkTarget link -- | Link a file tracking the link target. Create the target directory if -- missing. |