Skip to content

Commit 8e8a839

Browse files
authored
Merge pull request #11407 from haskell/clean-up-compatibility-shims-for-directory
Clean up compatibility shims for `directory` package
2 parents e974ac5 + d7eca6c commit 8e8a839

File tree

23 files changed

+36
-243
lines changed

23 files changed

+36
-243
lines changed

Cabal-tests/Cabal-tests.cabal

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ test-suite unit-tests
6363
, Cabal-QuickCheck
6464
, containers
6565
, Diff >=0.4 && <0.6
66-
, directory
66+
, directory >=1.2.7
6767
, filepath
6868
, pretty
6969
, QuickCheck >=2.14 && <2.15

Cabal-tests/lib/Test/Utils/TempTestDir.hs

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -91,29 +91,3 @@ removeDirectoryRecursiveHack verbosity dir | isWindows = go 1
9191
++ " times to remove "
9292
++ dir
9393
removeDirectoryRecursiveHack _ dir = removeDirectoryRecursive dir
94-
95-
#if !(MIN_VERSION_directory(1,2,7))
96-
-- A simplified version that ought to work for our use case here, and does
97-
-- not rely on directory internals.
98-
removePathForcibly :: FilePath -> IO ()
99-
removePathForcibly path = do
100-
makeRemovable path `catchIOError` \ _ -> pure ()
101-
isDir <- doesDirectoryExist path
102-
if isDir
103-
then do
104-
entries <- getDirectoryContents path
105-
sequence_
106-
[ removePathForcibly (path </> entry)
107-
| entry <- entries, entry /= ".", entry /= ".." ]
108-
removeDirectory path
109-
else
110-
removeFile path
111-
where
112-
makeRemovable :: FilePath -> IO ()
113-
makeRemovable p =
114-
setPermissions p emptyPermissions {
115-
readable = True,
116-
searchable = True,
117-
writable = True
118-
}
119-
#endif

Cabal-tests/tests/custom-setup/CabalDoctestSetup.hs

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -182,21 +182,8 @@ import Distribution.Types.LibraryName
182182
(libraryNameString)
183183
#endif
184184

185-
#if MIN_VERSION_directory(1,2,2)
186185
import System.Directory
187186
(makeAbsolute)
188-
#else
189-
import System.Directory
190-
(getCurrentDirectory)
191-
import System.FilePath
192-
(isAbsolute)
193-
194-
makeAbsolute :: FilePath -> IO FilePath
195-
makeAbsolute p | isAbsolute p = return p
196-
| otherwise = do
197-
cwd <- getCurrentDirectory
198-
return $ cwd </> p
199-
#endif
200187

201188
findFile' :: Verbosity -> [FilePath] -> FilePath -> IO FilePath
202189
#if MIN_VERSION_Cabal(3,11,0)

Cabal/Cabal.cabal

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ library
4545
, bytestring >= 0.10.0.0 && < 0.13
4646
, containers >= 0.5.8.2 && < 0.9
4747
, deepseq >= 1.3.0.1 && < 1.7
48-
, directory >= 1.2 && < 1.4
48+
, directory >= 1.2.7 && < 1.4
4949
, filepath >= 1.3.0.1 && < 1.6
5050
, pretty >= 1.1.1 && < 1.2
5151
, process >= 1.2.1.0 && < 1.7
@@ -94,7 +94,6 @@ library
9494
Distribution.Utils.LogProgress
9595
Distribution.Utils.MapAccum
9696
Distribution.Compat.CreatePipe
97-
Distribution.Compat.Directory
9897
Distribution.Compat.Environment
9998
Distribution.Compat.FilePath
10099
Distribution.Compat.Internal.TempFile

Cabal/src/Distribution/Compat/Directory.hs

Lines changed: 0 additions & 48 deletions
This file was deleted.

Cabal/src/Distribution/Simple/Configure.hs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -137,10 +137,6 @@ import Data.List
137137
)
138138
import qualified Data.List.NonEmpty as NEL
139139
import qualified Data.Map as Map
140-
import Distribution.Compat.Directory
141-
( doesPathExist
142-
, listDirectory
143-
)
144140
import Distribution.Compat.Environment (lookupEnv)
145141
import Distribution.Parsec
146142
( simpleParsec
@@ -158,6 +154,8 @@ import System.Directory
158154
( canonicalizePath
159155
, createDirectoryIfMissing
160156
, doesFileExist
157+
, doesPathExist
158+
, listDirectory
161159
, removeFile
162160
)
163161
import System.FilePath

Cabal/src/Distribution/Simple/ConfigureScript.hs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,11 @@ import Distribution.Utils.NubList
3737
import Distribution.Utils.Path
3838

3939
-- Base
40-
import System.Directory (createDirectoryIfMissing, doesFileExist)
40+
import System.Directory (createDirectoryIfMissing, doesFileExist, makeAbsolute)
4141
import qualified System.FilePath as FilePath
4242
#ifdef mingw32_HOST_OS
4343
import System.FilePath (normalise, splitDrive)
4444
#endif
45-
import Distribution.Compat.Directory (makeAbsolute)
4645
import Distribution.Compat.Environment (getEnvironment)
4746
import Distribution.Compat.GetShortPathName (getShortPathName)
4847

Cabal/src/Distribution/Simple/Program/Find.hs

Lines changed: 1 addition & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ import Distribution.Simple.Utils
4646
import Distribution.System
4747
import Distribution.Verbosity
4848

49-
import qualified System.Directory as Directory
49+
import System.Directory
5050
( findExecutable
5151
)
5252
import System.FilePath as FilePath
@@ -206,29 +206,6 @@ getSystemSearchPath = fmap nub $ do
206206
FilePath.getSearchPath
207207
#endif
208208

209-
#ifdef MIN_VERSION_directory
210-
#if MIN_VERSION_directory(1,2,1)
211-
#define HAVE_directory_121
212-
#endif
213-
#endif
214-
215-
findExecutable :: FilePath -> IO (Maybe FilePath)
216-
#ifdef HAVE_directory_121
217-
findExecutable = Directory.findExecutable
218-
#else
219-
findExecutable prog = do
220-
-- With directory < 1.2.1 'findExecutable' doesn't check that the path
221-
-- really refers to an executable.
222-
mExe <- Directory.findExecutable prog
223-
case mExe of
224-
Just exe -> do
225-
exeExists <- doesExecutableExist exe
226-
if exeExists
227-
then return mExe
228-
else return Nothing
229-
_ -> return mExe
230-
#endif
231-
232209
-- | Make a simple named program.
233210
--
234211
-- By default we'll just search for it in the path and not try to find the

cabal-install/cabal-install.cabal

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,6 @@ library
127127
Distribution.Client.CmdTest
128128
Distribution.Client.CmdUpdate
129129
Distribution.Client.CmdGenBounds
130-
Distribution.Client.Compat.Directory
131130
Distribution.Client.Compat.Orphans
132131
Distribution.Client.Compat.Prelude
133132
Distribution.Client.Compat.Semaphore
@@ -448,9 +447,6 @@ test-suite integration-tests2
448447
hs-source-dirs: tests
449448
default-language: Haskell2010
450449

451-
other-modules:
452-
IntegrationTests2.CPP
453-
454450
build-depends:
455451
, bytestring
456452
, cabal-install

cabal-install/src/Distribution/Client/CmdInstall.hs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,6 @@ module Distribution.Client.CmdInstall
2121
) where
2222

2323
import Distribution.Client.Compat.Prelude
24-
import Distribution.Compat.Directory
25-
( doesPathExist
26-
)
2724
import Prelude ()
2825

2926
import Distribution.Client.CmdErrorMessages
@@ -238,6 +235,7 @@ import System.Directory
238235
, createDirectoryIfMissing
239236
, doesDirectoryExist
240237
, doesFileExist
238+
, doesPathExist
241239
, getTemporaryDirectory
242240
, makeAbsolute
243241
, removeDirectory

0 commit comments

Comments
 (0)