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)
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 = 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}")
# Run if not --build
if not args.build:
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__":