Browse Source

Fix bug in createDirRecursive with trailing path separators

master
Julian Ospald 4 years ago
parent
commit
ec9884276c
4 changed files with 12 additions and 3 deletions
  1. +4
    -0
      hpath-directory/CHANGELOG.md
  2. +1
    -1
      hpath-directory/hpath-directory.cabal
  3. +2
    -2
      hpath-directory/src/System/Posix/RawFilePath/Directory.hs
  4. +5
    -0
      hpath-directory/test/System/Posix/RawFilePath/Directory/CreateDirRecursiveSpec.hs

+ 4
- 0
hpath-directory/CHANGELOG.md View File

@@ -1,5 +1,9 @@
# Revision history for hpath-directory

## 0.13.2 -- 2020-02-17

* Fix bug in `createDirRecursive` with trailing path separators

## 0.13.1 -- 2020-01-29

* Split some functionality out into 'hpath-posix'


+ 1
- 1
hpath-directory/hpath-directory.cabal View File

@@ -1,7 +1,7 @@
cabal-version: >=1.10

name: hpath-directory
version: 0.13.1
version: 0.13.2
synopsis: Alternative to 'directory' package with ByteString based filepaths
description: This provides a safer alternative to the 'directory'
package. FilePaths are ByteString based, so this


+ 2
- 2
hpath-directory/src/System/Posix/RawFilePath/Directory.hs View File

@@ -742,8 +742,8 @@ createDirRecursive fm p = go p
| en == eEXIST
-> unlessM (doesDirectoryExist dest) (ioError e)
| en == eNOENT
-> createDirRecursive fm (takeDirectory dest)
>> createDirectory dest fm
-> go (takeDirectory $ dropTrailingPathSeparator dest)
>> createDir fm dest
| otherwise
-> ioError e



+ 5
- 0
hpath-directory/test/System/Posix/RawFilePath/Directory/CreateDirRecursiveSpec.hs View File

@@ -49,6 +49,11 @@ spec = beforeAll_ (upTmpDir >> setupFiles) $ afterAll_ cleanupFiles $
createDirRecursive' "newDir"
deleteDir' "newDir"

it "createDirRecursive with trailing path separator, all fine" $ do
createDirRecursive' "newDir/foo/"
deleteDir' "newDir/foo"
deleteDir' "newDir"

it "createDirRecursive, parent directories do not exist" $ do
createDirRecursive' "some/thing/dada"
deleteDir' "some/thing/dada"


Loading…
Cancel
Save