diff options
Diffstat (limited to 'python/servo/util.py')
-rw-r--r-- | python/servo/util.py | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/python/servo/util.py b/python/servo/util.py index 66f2f11527c..2043b0e2868 100644 --- a/python/servo/util.py +++ b/python/servo/util.py @@ -14,6 +14,7 @@ import os.path import platform import shutil from socket import error as socket_error +import stat import StringIO import sys import zipfile @@ -35,9 +36,15 @@ else: URLOPEN_KWARGS = {} +def remove_readonly(func, path, _): + "Clear the readonly bit and reattempt the removal" + os.chmod(path, stat.S_IWRITE) + func(path) + + def delete(path): if os.path.isdir(path) and not os.path.islink(path): - shutil.rmtree(path) + shutil.rmtree(path, onerror=remove_readonly) else: os.remove(path) |