diff --git a/src/smarttools/runner.py b/src/smarttools/runner.py index be80139..22f3191 100644 --- a/src/smarttools/runner.py +++ b/src/smarttools/runner.py @@ -67,12 +67,15 @@ def execute_code_step(step: CodeStep, variables: dict) -> tuple[dict, bool]: Returns: Tuple of (output_vars_dict, success) """ + # Substitute variables in code (like {outputfile} -> actual value) + code = substitute_variables(step.code, variables) + # Create execution environment with variables local_vars = dict(variables) try: - # Execute the code - exec(step.code, {"__builtins__": __builtins__}, local_vars) + # Execute the code with substituted variables + exec(code, {"__builtins__": __builtins__}, local_vars) # Support comma-separated output vars (e.g., "a, b, c") output_vars = [v.strip() for v in step.output_var.split(',')]