import os from pathlib import Path import subprocess import sys def eprint(*args, **kwargs): print(*args, file=sys.stderr, **kwargs) try: subprocess.run( ["bun", "--version"], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL ) except FileNotFoundError: eprint("bun not found, please run the following command to install it:") eprint('powershell -c "irm bun.sh/install.ps1|iex"') sys.exit(1) file_dir = Path(__file__).parent itame_vendor_dir = file_dir / "itame" if not itame_vendor_dir.exists(): eprint( "script must be placed in the parent directory of the vendor itame directory" ) sys.exit(1) node_modules_dir = itame_vendor_dir / "node_modules" entrypoint = itame_vendor_dir / "index.ts" if not node_modules_dir.exists(): old_dir = os.getcwd() os.chdir(itame_vendor_dir) eprint("installing dependencies") p = subprocess.run(["bun", "i"], stdout=subprocess.PIPE, stderr=subprocess.PIPE) if p.returncode != 0: eprint("failed to install dependencies") eprint(p.stderr.decode("utf-8")) eprint(p.stdout.decode("utf-8")) sys.exit(1) os.chdir(old_dir) eprint() exit(subprocess.run(["bun", "run", str(entrypoint)] + sys.argv[1:]).returncode)