summaryrefslogtreecommitdiffstats
path: root/platform_utils.py
diff options
context:
space:
mode:
authorRenaud Paquay <rpaquay@google.com>2016-11-11 14:25:29 -0800
committerRenaud Paquay <rpaquay@google.com>2017-08-31 13:49:36 -0700
commit010fed771183c23c0e7d04a4e7292782f68de9db (patch)
tree438b928fa1adaa7105d88462299513ca59c47c9f /platform_utils.py
parente8595e9df7980b0b7d9111de43d294c4439d474c (diff)
downloadgit-repo-010fed771183c23c0e7d04a4e7292782f68de9db.tar.gz
Replace all os.remove calls
os.remove raises an exception when deleting read-only files on Windows. Replace all calls with calls to platform_utils.remove, which deals with deals with that issue. Change-Id: I4dc9e0c9a36b4238880520c69f5075eca40f3e66
Diffstat (limited to 'platform_utils.py')
-rw-r--r--platform_utils.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/platform_utils.py b/platform_utils.py
index 2ad56490..33cb2ec3 100644
--- a/platform_utils.py
+++ b/platform_utils.py
@@ -244,6 +244,23 @@ def rename(src, dst):
244 os.rename(src, dst) 244 os.rename(src, dst)
245 245
246 246
247def remove(path):
248 """Remove (delete) the file path. This is a replacement for os.remove, but
249 allows deleting read-only files on Windows.
250 """
251 if isWindows():
252 try:
253 os.remove(path)
254 except OSError as e:
255 if e.errno == errno.EACCES:
256 os.chmod(path, stat.S_IWRITE)
257 os.remove(path)
258 else:
259 raise
260 else:
261 os.remove(path)
262
263
247def islink(path): 264def islink(path):
248 """Test whether a path is a symbolic link. 265 """Test whether a path is a symbolic link.
249 266