We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 3c37b0f commit e924993Copy full SHA for e924993
build/pyutil/file_util.py
@@ -4,6 +4,7 @@
4
5
import errno
6
import os
7
+import uuid
8
9
"""Creates a directory and its parents (i.e. `mkdir -p`).
10
@@ -21,10 +22,16 @@ def mkdir_p(path):
21
22
"""Creates or ovewrites a symlink from `link` to `target`."""
23
def symlink(target, link):
24
mkdir_p(os.path.dirname(link))
- tmp_link = link + '.tmp'
25
+ tmp_link = link + '.tmp.' + uuid.uuid4().hex
26
try:
27
os.remove(tmp_link)
28
except OSError:
29
pass
30
os.symlink(target, tmp_link)
- os.rename(tmp_link, link)
31
+ try:
32
+ os.rename(tmp_link, link)
33
+ except FileExistsError:
34
35
+ os.remove(tmp_link)
36
+ except OSError:
37
+ pass
0 commit comments