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

export RTX_MISSING_RUNTIME_BEHAVIOR=autoinstall
export RTX_DEFAULT_TOOL_VERSIONS_FILENAME=.alternate-tool-versions
export RTX_DEFAULT_CONFIG_FILENAME=.MISSING

git checkout .alternate-tool-versions

rtx i shfmt
rtx exec -- shfmt --version >&2
if [[ "$(rtx exec -- shfmt --version)" != "v3.5.0" ]]; then
  exit 1
fi

assert() {
  actual="$($1)"
  actual="${actual%$'\n'}"
  expected="${2%$'\n'}"
  if [[ "$actual" != "$expected" ]]; then
    echo "assertion failed, expected '$expected', got '$actual'"
    exit 1
  fi
}

assert "rtx local" "shfmt 3.5.0"

rtx local -p shfmt@3.6.0
assert "rtx local -p" "shfmt 3.6.0"

rtx exec -- shfmt --version >&2
if [[ "$(rtx exec -- shfmt --version)" != "v3.6.0" ]]; then
  exit 1
fi

rtx local -p shfmt@3.5.0
assert "rtx local shfmt" "3.5.0"
