build: fix dir removal traceback

This one is to cover the case where the current directory vanishes out from
under us, so os.getcwd() raises an OSError.

(Bitbake rev: 7a29ab534388c0095f7f826b16c5cff343927d10)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Chris Larson 2011-03-25 08:58:52 -07:00 committed by Richard Purdie
parent 8b938dc82c
commit 2d73cd1d32
1 changed files with 9 additions and 6 deletions

View File

@ -182,16 +182,16 @@ def exec_func_python(func, d, runfile, cwd=None):
"""Execute a python BB 'function'"""
bbfile = d.getVar('FILE', True)
try:
olddir = os.getcwd()
except OSError:
olddir = None
code = _functionfmt.format(function=func, body=d.getVar(func, True))
bb.utils.mkdirhier(os.path.dirname(runfile))
with open(runfile, 'w') as script:
script.write(code)
if cwd:
try:
olddir = os.getcwd()
except OSError:
olddir = None
os.chdir(cwd)
try:
@ -203,8 +203,11 @@ def exec_func_python(func, d, runfile, cwd=None):
raise FuncFailed(func, None)
finally:
if olddir:
os.chdir(olddir)
if cwd and olddir:
try:
os.chdir(olddir)
except OSError:
pass
def exec_func_shell(function, d, runfile, cwd=None):
"""Execute a shell function from the metadata