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

engine_root="${HARNESS_HOME:-$HOME/.harness}/engine"
current_file="$engine_root/CURRENT"

[[ -r "$current_file" ]] || {
  printf 'ca.sh: harness engine CURRENT is unreadable: %s\n' "$current_file" >&2
  exit 3
}

IFS= read -r version <"$current_file"
[[ "$version" =~ ^[A-Za-z0-9][A-Za-z0-9._-]*$ && "$version" != *".."* ]] || {
  printf 'ca.sh: invalid harness engine version in %s\n' "$current_file" >&2
  exit 3
}

wrapper="$engine_root/versions/$version/wrappers/ca.sh"
[[ -x "$wrapper" && ! -L "$wrapper" ]] || {
  printf 'ca.sh: harness engine wrapper unavailable: %s\n' "$wrapper" >&2
  exit 3
}

exec "$wrapper" "$@"
