def fun(self): cmd_tmpl = ''.join(self.out) params = self.params def f(task): env = task.m_env p = env.get_flat alst=[] for (name, meth) in params: if name == 'SRC': if meth: alst.append(eval('task.m_inputs%s' % meth)) else: alst.append(" ".join([a.srcpath(env) for a in task.m_inputs])) elif name == 'TGT': if meth: alst.append(eval('task.m_outputs%s' % meth)) else: alst.append(" ".join([a.bldpath(env) for a in task.m_outputs])) else: self.m_vars.append(name) alst.append(p(name)) if alst: try: cmd = cmd_tmpl % tuple(alst) except Exception: task.debug() raise else: cmd = cmd_tmpl return Runner.exec_command(cmd) return f