From 07c4a6a38938c10640bf7a2e17d9029e2a4bceb2 Mon Sep 17 00:00:00 2001 From: KeshavAnandCode Date: Fri, 1 May 2026 23:36:58 -0500 Subject: [PATCH] Default: run directly. --build: save only. --save: save and run --- src/tampy/cli.py | 34 ++++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/src/tampy/cli.py b/src/tampy/cli.py index a7249b2..a301800 100644 --- a/src/tampy/cli.py +++ b/src/tampy/cli.py @@ -1,6 +1,8 @@ import argparse import subprocess import sys +import tempfile +import os from pathlib import Path from .transpiler import transpile @@ -31,14 +33,14 @@ def main(): generated_code = transpile(code) - generated_path = file_path.with_suffix(".generated.py") - - # Always save generated file - generated_path.write_text(generated_code, encoding="utf-8") - print(f"Generated: {generated_path.name}") - - # Run if not --build - if not args.build: + if args.build: + generated_path = file_path.with_suffix(".generated.py") + generated_path.write_text(generated_code, encoding="utf-8") + print(f"Generated: {generated_path.name}") + elif args.save: + generated_path = file_path.with_suffix(".generated.py") + generated_path.write_text(generated_code, encoding="utf-8") + print(f"Generated: {generated_path.name}") result = subprocess.run( [sys.executable, str(generated_path)], capture_output=True, @@ -47,6 +49,22 @@ def main(): if result.returncode != 0: print(result.stderr, file=sys.stderr) sys.exit(result.returncode) + else: + # Default: run directly without saving + with tempfile.NamedTemporaryFile(mode="w", suffix=".py", delete=False, encoding="utf-8") as f: + f.write(generated_code) + temp_path = f.name + try: + result = subprocess.run( + [sys.executable, temp_path], + capture_output=True, + text=True + ) + if result.returncode != 0: + print(result.stderr, file=sys.stderr) + sys.exit(result.returncode) + finally: + os.unlink(temp_path) if __name__ == "__main__":