#!/bin/bash
set -e

pkg=orthanc-wsi
CUR_DIR=`pwd`
service_name=orthanc
orthanc_server="http://localhost:8042"

if [ "${AUTOPKGTEST_TMP}" = "" ] ; then
  AUTOPKGTEST_TMP=$(mktemp -d /tmp/${pkg}-test.XXXXXX)
  trap "rm -rf ${AUTOPKGTEST_TMP}" 0 INT QUIT ABRT PIPE TERM
fi

cp ${CUR_DIR}/debian-tests-data/* -a "${AUTOPKGTEST_TMP}"

cd "${AUTOPKGTEST_TMP}"

# Check if user 'orthanc' exists
if getent passwd orthanc > /dev/null 2>&1; then
    echo "User 'orthanc' exists."
else
	adduser --system --group orthanc
    echo "User 'orthanc' added."
fi


# Start the orthanc service
/etc/init.d/$service_name start

if [ $? -eq 0 ]; then
    echo "Orthanc is active."
else
    echo "Orthanc is not active."
fi


# Try for 15 seconds to find the REST API of Orthanc in a healthy state
URL=http://localhost:8042/system
tries=15
set +e  # Thanks Etienne Mollier - https://lists.debian.org/debian-mentors/2025/04/msg00176.html
while true
do
    STATUSCODE=$(curl --silent --output /dev/null --write-out "%{http_code}" ${URL})
    test "$STATUSCODE" -eq 200 && echo "Orthanc initialized!" && break
    tries=$(expr "$tries" - 1)
    test "$tries" -le 0 && echo "Unable to initialize Orthanc" && exit 1
    sleep 1
done
set -e


# Transcode data and push to server
OrthancWSIDicomizer CMU-1-Small-Region.tiff --orthanc=$orthanc_server


if [ $? -eq 0 ]; then
    echo "TIFF transcoded and pushed to Orthanc server"
fi
