From 9791f2d1a0c08c2e46a23a48c6cd07d76a79e4a5 Mon Sep 17 00:00:00 2001 From: Javier Sagredo Date: Tue, 9 Jul 2024 15:53:08 +0200 Subject: [PATCH] Remove path forcibly on cabal clean on Windows --- cabal-install/src/Distribution/Client/CmdClean.hs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/cabal-install/src/Distribution/Client/CmdClean.hs b/cabal-install/src/Distribution/Client/CmdClean.hs index 2ffda4dce6a..8d036b6694d 100644 --- a/cabal-install/src/Distribution/Client/CmdClean.hs +++ b/cabal-install/src/Distribution/Client/CmdClean.hs @@ -52,6 +52,11 @@ import Distribution.Simple.Utils , info , wrapText ) + +import Distribution.System + ( OS (Windows) + , buildOS + ) import Distribution.Utils.Path hiding ( (<.>) , () @@ -74,6 +79,7 @@ import System.Directory , listDirectory , removeDirectoryRecursive , removeFile + , removePathForcibly ) import System.FilePath ( () @@ -168,7 +174,12 @@ cleanAction (ProjectFlags{..}, CleanFlags{..}) extraArgs _ = do let distRoot = distDirectory distLayout info verbosity ("Deleting dist-newstyle (" ++ distRoot ++ ")") - handleDoesNotExist () $ removeDirectoryRecursive distRoot + handleDoesNotExist () $ + if buildOS == Windows + then + -- Windows can't delete some git files #10182 + removePathForcibly distRoot + else removeDirectoryRecursive distRoot removeEnvFiles $ distProjectRootDirectory distLayout