#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
UPDATER="${SCRIPT_DIR}/update-documentation-versions.sh"
TEMP_DIR=$(mktemp -d)
trap 'rm -rf "$TEMP_DIR"' EXIT
run_case() {
local name=$1
local old_version=$2
local old_dev_version=$3
local version=$4
local dev_version=$5
local old_jbang_version=$6
local case_dir="${TEMP_DIR}/${name}"
mkdir "$case_dir"
printf '%s\n' \
'' \
' copilot-sdk-java' \
" ${old_version}" \
'' \
"implementation 'com.github:copilot-sdk-java:${old_version}'" \
'' \
' copilot-sdk-java' \
" ${old_dev_version}" \
'' \
"implementation 'com.github:copilot-sdk-java:${old_dev_version}'" \
'' \
' jna' \
' 5.19.1' \
'' \
> "${case_dir}/README.md"
printf '%s\n' \
"///usr/bin/env jbang \"\$0\" \"\$@\" ; exit \$?" \
"//DEPS com.github:copilot-sdk-java:${old_jbang_version}" \
> "${case_dir}/jbang-example.java"
"$UPDATER" "$version" "$dev_version" "${case_dir}/README.md" "${case_dir}/jbang-example.java"
grep -Fqx " ${version}" "${case_dir}/README.md"
grep -Fqx "implementation 'com.github:copilot-sdk-java:${version}'" "${case_dir}/README.md"
grep -Fqx " ${dev_version}" "${case_dir}/README.md"
grep -Fqx "implementation 'com.github:copilot-sdk-java:${dev_version}'" "${case_dir}/README.md"
grep -Fqx ' 5.19.1' "${case_dir}/README.md"
grep -Fqx "//DEPS com.github:copilot-sdk-java:${version}" "${case_dir}/jbang-example.java"
if grep -Fq "$old_version" "${case_dir}/README.md" "${case_dir}/jbang-example.java" ||
grep -Fq "$old_dev_version" "${case_dir}/README.md"; then
echo "Stale version remained in ${name} test output" >&2
exit 1
fi
}
run_case stable 1.0.8 1.0.9-SNAPSHOT 1.0.9 1.0.10-SNAPSHOT "\${project.version}"
run_case preview 1.0.9-preview.2-01 1.0.10-preview.2-SNAPSHOT 1.0.10-preview.2 1.0.11-preview.2-SNAPSHOT 1.0.9-preview.2-01