#!/usr/bin/env bash
version="v4.35.2"
if [[ -f ./yq ]] && ./yq --version | grep -q "${version}"; then
  echo "yq is already available and up to date."
  exit 0
fi
if [[ -f ./yq ]]; then
  echo "yq is already available but not at the required version. Replacing with ${version}."
  rm -f yq
fi

echo "Fetching yq ${version}"
os=$(uname -s)
arch=$(uname -m)
url=""

if [[ ${os} == "Darwin" ]]; then
  if [[ ${arch} == "arm64" ]]; then
    url="https://github.com/mikefarah/yq/releases/download/${version}/yq_darwin_arm64"
  elif [[ ${arch} == "x86_64" ]]; then
    url="https://github.com/mikefarah/yq/releases/download/${version}/yq_darwin_amd64"
  fi
elif [[ ${os} == "Linux" ]]; then
  if [[ ${arch} == "x86_64" ]]; then
    url="https://github.com/mikefarah/yq/releases/download/${version}/yq_linux_amd64"
  elif [[ ${arch} == "arm64" ]]; then
    url="https://github.com/mikefarah/yq/releases/download/${version}/yq_linux_arm64"
  fi
fi

if [[ -z ${url} ]]; then
  echo "os \"${os}\" and/or architecture \"${arch}\" is not supported."
  exit 1
else
  echo "Downloading yq from ${url}"
  curl -o yq -L "${url}"
  chmod +x ./yq
  ./yq --version
  if ! ./yq --version | grep -q "${version}"; then # check that yq was installed correctly
    echo "Version is incorrect"
    exit 1
  fi
fi