#!/bin/sh

REPO=https://pub.bma.ai/eva-mlkit/server

[ -z "$EVA_DIR" ] && EVA_DIR=/opt/eva4
[ -z "$TARGET_DIR" ] && TARGET_DIR="${EVA_DIR}/mlkit"

if [ "$(uname -m)" != "x86_64" ]; then
  echo "EVA ICS Machine Learning kit server requires x86_64 Linux system"
  exit 8
fi

ARCH_SFX=x86_64-musl

UPDATE_FILE=/tmp/mlkit_update_info.jsom

if ! curl -Ls "${REPO}/update_info.json" -o "${UPDATE_FILE}"; then
  echo "Unable to download EVA ICS Machine Learning kit server update info"
  exit 7
fi

VERSION=$(jq -r .version "${UPDATE_FILE}")
BUILD=$(jq -r .build "${UPDATE_FILE}")

rm -f "${UPDATE_FILE}"

if [ -z "$VERSION" ] || [ -z "${BUILD}" ]; then
  echo "Unable to obtain version info"
  exit 8
fi

mkdir -p "${TARGET_DIR}"

DISTRO="${REPO}/${VERSION}/nightly/eva-mlsrv-${VERSION}-${BUILD}-${ARCH_SFX}.tgz"

TMP_DIR=/tmp/eva_mlkit_srv

rm -rf "$TMP_DIR"
mkdir "$TMP_DIR" || exit 1

echo "Downloading ${DISTRO}"
curl -L "${DISTRO}" | \
  tar xzf - -C "${TMP_DIR}/" || exit 1

echo "Installing..."
rm -f "${TARGET_DIR}/eva-mlsrv" || exit 1
cp -rvf ${TMP_DIR}/* "${TARGET_DIR}/" || exit 2

echo "Cleaning up...."
rm -rf "${TMP_DIR}"

echo
echo "EVA ICS Machine Learning kit server has been successfully installed/updated"
echo "version: ${VERSION}, build: ${BUILD}"
echo
