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 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__":