#!/usr/bin/env python3
"""Fake `uv` for tests: records argv, emulates `uv tool install` by dropping an
executable into UV_TOOL_BIN_DIR. Never touches the network."""

import json
import os
import stat
import sys


def record() -> None:
    log = os.environ.get("FAKE_UV_LOG")
    if log:
        with open(log, "a") as fh:
            fh.write(json.dumps(sys.argv[1:]) + "\n")


def main() -> int:
    record()
    args = sys.argv[1:]
    if os.environ.get("FAKE_UV_FAIL"):
        print("fake uv: forced failure", file=sys.stderr)
        return 1
    if args[:2] == ["tool", "install"]:
        spec = next((a for a in args[2:] if not a.startswith("-")), None)
        if spec is None:
            print("fake uv: no package spec", file=sys.stderr)
            return 2
        name = spec.split(" @ ")[0].split("==")[0]
        bin_dir = os.environ.get("UV_TOOL_BIN_DIR")
        if not bin_dir:
            print("fake uv: UV_TOOL_BIN_DIR not set", file=sys.stderr)
            return 2
        os.makedirs(bin_dir, exist_ok=True)
        path = os.path.join(bin_dir, name)
        with open(path, "w") as fh:
            fh.write("#!/bin/sh\necho fake %s\n" % name)
        os.chmod(path, os.stat(path).st_mode | stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH)
        print(f"Installed 1 executable: {name}", file=sys.stderr)
        return 0
    if args[:1] == ["venv"]:
        target = next((a for a in args[1:] if not a.startswith("-")), None)
        if target:
            os.makedirs(os.path.join(target, "bin"), exist_ok=True)
            python = os.path.join(target, "bin", "python")
            with open(python, "w") as fh:
                fh.write("#!/bin/sh\nexec python3 \"$@\"\n")
            os.chmod(python, 0o755)
        return 0
    if args[:2] == ["pip", "install"]:
        return 0
    return 0


if __name__ == "__main__":
    sys.exit(main())
