Try to work around shutil.rmtree permission denied problem.

git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@3238 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
Cory McWilliams 2016-06-05 12:07:04 +00:00
parent 80d392bffe
commit 08dac879d7

View File

@ -2,6 +2,7 @@
import os import os
import shutil import shutil
import stat
import subprocess import subprocess
import sys import sys
@ -29,6 +30,13 @@ def run(*args, **kw):
print 'Running:', args, kw print 'Running:', args, kw
subprocess.check_call(*args, **kw) subprocess.check_call(*args, **kw)
def makeWritableAndRetry(function, path, exc_info):
if not os.access(path, os.W_OK):
os.chmod(path, stat.S_IWUSR)
function(path)
else:
raise
def updateUv(): def updateUv():
print 'libuv' print 'libuv'
print print
@ -45,7 +53,7 @@ def updateUv():
if clean: if clean:
if os.path.isdir(os.path.join(kUvWork)): if os.path.isdir(os.path.join(kUvWork)):
print 'Cleaning', kUvWork print 'Cleaning', kUvWork
shutil.rmtree(os.path.join(kUvWork)) shutil.rmtree(os.path.join(kUvWork), onerror=makeWritableAndRetry)
if not os.path.isdir(kUvWork): if not os.path.isdir(kUvWork):
run(['git', 'clone', '--branch', kUvBranch, kUvRepository, kUvWork]) run(['git', 'clone', '--branch', kUvBranch, kUvRepository, kUvWork])
open(os.path.join(kUvWork, '.update-deps-branch'), 'w').write(kUvBranch) open(os.path.join(kUvWork, '.update-deps-branch'), 'w').write(kUvBranch)
@ -81,7 +89,7 @@ def updateV8():
if clean: if clean:
if os.path.isdir(kV8Work): if os.path.isdir(kV8Work):
shutil.rmtree(kV8Work) shutil.rmtree(kV8Work, onerror=makeWritableAndRetry)
if True or sys.platform == 'linux2': if True or sys.platform == 'linux2':
# XXX Modify this one .py file which assumes things that conflict with my debian environment. # XXX Modify this one .py file which assumes things that conflict with my debian environment.