Skip to content
This repository was archived by the owner on Apr 4, 2023. It is now read-only.

Commit 0692e11

Browse files
author
Huy Doan
authored
Merge pull request #7 from nigredo-tori/fix-5
Proper fix for directory creation
2 parents 8bc4835 + 1cafbbe commit 0692e11

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

tempfile.nim

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,20 @@ proc mkdtemp*(prefix = "tmp", suffix = "", dir = ""): string =
5959
for x in 0..MAX_RETRIES:
6060
path = mktemp(prefix, suffix, dir)
6161
try:
62-
# A bit racy, but better than nothing
63-
if not path.existsDir:
64-
createDir(path)
65-
return path
62+
when declared(existsOrCreateDir):
63+
# Nim 0.15.3 or later
64+
createDir(path.parentDir)
65+
if not existsOrCreateDir(path):
66+
return path
67+
else:
68+
# Nim 0.15.2 or older (for compatibility)
69+
# A bit racy, but better than nothing
70+
if not path.existsDir:
71+
createDir(path)
72+
# Before 0.15.3 `createDir` didn't fail if `path` did
73+
# already exist, but was not a directory.
74+
if path.existsDir:
75+
return path
6676
except:
6777
discard
6878
raise newException(IOError, "Unable to create temporary directory")

0 commit comments

Comments
 (0)