Default: run directly. --build: save only. --save: save and run

This commit is contained in:
2026-05-01 23:36:58 -05:00
parent aed57f94ad
commit 07c4a6a389

View File

@@ -1,6 +1,8 @@
import argparse import argparse
import subprocess import subprocess
import sys import sys
import tempfile
import os
from pathlib import Path from pathlib import Path
from .transpiler import transpile from .transpiler import transpile
@@ -31,14 +33,14 @@ def main():
generated_code = transpile(code) generated_code = transpile(code)
generated_path = file_path.with_suffix(".generated.py") if args.build:
generated_path = file_path.with_suffix(".generated.py")
# Always save generated file generated_path.write_text(generated_code, encoding="utf-8")
generated_path.write_text(generated_code, encoding="utf-8") print(f"Generated: {generated_path.name}")
print(f"Generated: {generated_path.name}") elif args.save:
generated_path = file_path.with_suffix(".generated.py")
# Run if not --build generated_path.write_text(generated_code, encoding="utf-8")
if not args.build: print(f"Generated: {generated_path.name}")
result = subprocess.run( result = subprocess.run(
[sys.executable, str(generated_path)], [sys.executable, str(generated_path)],
capture_output=True, capture_output=True,
@@ -47,6 +49,22 @@ def main():
if result.returncode != 0: if result.returncode != 0:
print(result.stderr, file=sys.stderr) print(result.stderr, file=sys.stderr)
sys.exit(result.returncode) 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__": if __name__ == "__main__":