import os, re, subprocess, sys, urllib.parse
home, port, host, metro, session = sys.argv[1:]
def run(args):
    r = subprocess.run(args, capture_output=True, text=True, env={**os.environ, 'T3CODE_PORT': port})
    if r.returncode: raise RuntimeError(r.stderr[-800:])
    return r.stdout
url = 't3code-dev://expo-development-client/?' + urllib.parse.urlencode({'url':f'http://{host}:{metro}', 'disableOnboarding':'1', 'disableFab':'1', 'disableAutoLaunch':'1'})
if not os.environ.get('SKIP_METRO'): run(['agent-device','open','com.t3tools.t3code.dev',url,'--session',session])
print('Opened dev client')
if os.environ.get('PAIR_ONLY'): sys.exit(0)
result = run(['node','apps/server/src/bin.ts','auth','pairing','create','--ttl','15m','--label','Evidence','--base-url',f'http://{host}:{port}','--base-dir',home])
pair = re.search(r'Pair URL:\s*(\S+)', result).group(1)
link='t3code-dev://connections/new?'+urllib.parse.urlencode({'pairingUrl':pair,'autoConnect':'1'})
run(['agent-device','open','com.t3tools.t3code.dev',link,'--session',session])
print('Opened pairing link')
