48 lines
1.2 KiB
Python
48 lines
1.2 KiB
Python
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()
|
|
|
|
subprocess.run(["bun", "run", str(entrypoint)] + sys.argv[1:])
|