#!/bin/bash

supported_java_versions_array=(17 21)
cli_jar_file_name="cli-2025.1.0.jar"


# Create a string representation of the supported Java versions list
supported_java_versions_str=""
supported_versions_num=${#supported_java_versions_array[@]}
for (( i=0; i<${supported_versions_num}-2; i++)); do
  supported_java_versions_str+="${supported_java_versions_array[$i]}, "
done
if (( ${supported_versions_num} >= 2 )); then
  supported_java_versions_str+="${supported_java_versions_array[*]: -2:1} or "
fi
supported_java_versions_str+="${supported_java_versions_array[*]: -1}"

# Error MSSGs
msg_java_not_installed="Java Runtime Environment is not installed on this machine. Install any of the following JRE versions: $supported_java_versions_str to run SDF CLI."
msg_java_incompatible_version="Your Java version is not compatible with SDF CLI. Install any of the following JRE versions: $supported_java_versions_str."
msg_jar_file_missing="The JAR file could not be found. Download the JAR file from the Help Center into the same directory where the SDF CLI script is stored."


# Check if Java is installed
installed_java_version=$(java -fullversion 2>&1 | awk -F '"' '/version/ {print $2}')
if [[ "$installed_java_version" == "" ]]; then
    echo "$msg_java_not_installed"
    exit 1
fi


# Check for compatible Java Version
found_version="false"
for supported_version in ${supported_java_versions_array[@]}; do
	if [[ "$installed_java_version" =~ ^"$supported_version"\. ]]; then
		found_version="true"
	fi
done

if [[ "$found_version" == "false" ]]; then
	echo "$msg_java_incompatible_version"
	exit 1
fi


# Locate jar file
cli_directory=$(dirname "$BASH_SOURCE")
cli_jar_file_path="$cli_directory/$cli_jar_file_name"

if [ ! -f "$cli_jar_file_path" ]; then
    echo "$msg_jar_file_missing"
    exit 1
fi

# Launch SDFCLI
java -jar "$cli_jar_file_path" ${1+"$@"}