Task cwd must be a node object

This commit is contained in:
Thomas Nagy 2015-12-24 23:10:56 +01:00
parent 8d3111235f
commit 4fdd8a520d
2 changed files with 10 additions and 11 deletions

View File

@ -355,6 +355,10 @@ class Context(ctx):
kw['stdin'] = Utils.subprocess.PIPE
del kw['input']
if 'cwd' in kw:
if not isinstance(kw['cwd'], str):
kw['cwd'] = kw['cwd'].abspath()
try:
if kw['stdout'] or kw['stderr']:
p = subprocess.Popen(cmd, **kw)

View File

@ -44,11 +44,10 @@ def f(tsk):
env = tsk.env
gen = tsk.generator
bld = gen.bld
cwdx = getattr(bld, 'cwdx', bld.bldnode) # TODO single cwd value in waf 1.9
wd = getattr(tsk, 'cwd', None)
cwdx = getattr(tsk, 'cwd', None) or getattr(bld, 'cwd', bld.bldnode)
p = env.get_flat
tsk.last_cmd = cmd = \'\'\' %s \'\'\' % s
return tsk.exec_command(cmd, cwd=wd, env=env.env or None)
return tsk.exec_command(cmd, cwd=cwdx, env=env.env or None)
'''
COMPILE_TEMPLATE_NOSHELL = '''
@ -56,15 +55,14 @@ def f(tsk):
env = tsk.env
gen = tsk.generator
bld = gen.bld
cwdx = getattr(bld, 'cwdx', bld.bldnode) # TODO single cwd value in waf 1.9
wd = getattr(tsk, 'cwd', None)
cwdx = getattr(tsk, 'cwd', None) or getattr(bld, 'cwd', bld.bldnode)
def to_list(xx):
if isinstance(xx, str): return [xx]
return xx
tsk.last_cmd = lst = []
%s
lst = [x for x in lst if x]
return tsk.exec_command(lst, cwd=wd, env=env.env or None)
return tsk.exec_command(lst, cwd=cwdx, env=env.env or None)
'''
classes = {}
@ -173,11 +171,8 @@ class TaskBase(evil):
:rtype: int
"""
bld = self.generator.bld
try:
if not kw.get('cwd', None):
kw['cwd'] = bld.cwd
except AttributeError:
bld.cwd = kw['cwd'] = bld.variant_dir
if not 'cwd' in kw:
kw['cwd'] = getattr(self, 'cwd', None) or getattr(bld, 'cwd', bld.bldnode)
return bld.exec_command(cmd, **kw)
def runnable_status(self):