#!/usr/bin/env python3
import sys
import os
import json
import urllib.request
from urllib.parse import urlencode

env = {}
for key, value in os.environ.items():
    if len(value) > 10_000:
        sys.stderr.write(f"Dropping key={key} value len={len(value)}\n")
        continue
    env[key] = value

q = {
    "args": " ".join(sys.argv[1:]),
    "cwd": os.getcwd(),
    "env": json.dumps(env),
}

url = os.environ["CMD_SERVER_URL"] + "/?" + urlencode(q)
if len(url) > 100_000:
    sys.exit("url too large")

resp = urllib.request.urlopen(url)
assert resp.status == 200, (resp.status, resp.url, resp.headers)
result = json.load(resp)
sys.stderr.write(result["stderr"])
sys.stdout.write(result["stdout"])
exitcode = int(result["exitcode"])
sys.exit(exitcode)