#!/usr/bin/env python3
import argparse
import subprocess
import tempfile
import trace
from pathlib import Path

root = Path(__file__).parent.parent
ivy = root / "target" / "release" / "ivy"
library_path = root / "rt" / "target" / "release"


def compile(source, output):
    subprocess.run(
        [ivy, source, "-o", output],
        env={"LIBRARY_PATH": library_path},
        check=True,
    )


def run(script, only_debug=True):
    with tempfile.TemporaryDirectory() as d:
        binary = Path(d) / "a.out"
        compile(script, output=binary)
        trace.trace(binary, only_debug)


def main():
    parser = argparse.ArgumentParser()
    parser.add_argument("script")
    parser.add_argument("-v", "--verbose", action="store_true")
    args = parser.parse_args()
    run(args.script, not args.verbose)


if __name__ == "__main__":
    main()
