#!/usr/bin/env bash
set -euo pipefail

# With lockfile_platforms limited to the host, `mise install` in generate mode
# has no foreign platform to prepare. It must not try to attach a uv graph to a
# lockfile entry that was never generated.
mise install uv@0.12.10 python@3.12.11
python3 "$ROOT/e2e/fixtures/pypi/server.py" "$PWD/index" &
server_pid=$!
trap 'kill "$server_pid"' EXIT
for _ in {1..100}; do
  [[ -s index/port ]] && break
  sleep 0.1
done
port=$(cat index/port)
current_platform=$(mise x -- python3 -c 'import platform,sys; arch={"x86_64":"x64","amd64":"x64","aarch64":"arm64","arm64":"arm64"}[platform.machine().lower()]; print({"linux":"linux","darwin":"macos"}[sys.platform.replace("linux2","linux")]+"-"+arch)')
cat >mise.toml <<EOF_CONFIG
[tools]
uv = "0.12.10"
python = "3.12.11"
"pipx:mise-lock-cli" = "1.0.0"
[settings]
lockfile = true
lockfile_platforms = ["$current_platform"]
minimum_release_age = "0"
pypi.registry_url = "http://127.0.0.1:$port/pypi/{}/json"
EOF_CONFIG
mise trust
mise lock
MISE_LOCKFILE_MODE=generate mise install --force pipx:mise-lock-cli
assert_contains "cat mise.lock" 'tools."pipx:mise-lock-cli"'
assert_contains "mise x --locked -- lock-cli" 'dependency=1.0.0'
