#!/usr/bin/env bash
set -euo pipefail

if [ "$#" -ne 1 ]; then
  echo "Usage: $0 SERIAL_KEY" >&2
  exit 2
fi

SERIAL_KEY="$1"
SDK_DIR="${SDK_DIR:-/workspace/city-subcenter/baidu-face-offline-sdk/extracted/Baidu_Face_Offline_SDK_Linux_ARM_8.0/face_offline_sdk}"
REPORT_DIR="${REPORT_DIR:-/workspace/city-subcenter/baidu-face-offline-sdk/reports}"
LICENSE_DIR="$SDK_DIR/license"
mkdir -p "$REPORT_DIR"

REPORT="$REPORT_DIR/baidu-face-online-activate-$(date +%Y%m%d%H%M%S).txt"

cd "$SDK_DIR"

{
  echo "## online activate"
  date
  echo "SDK_DIR=$SDK_DIR"
  echo
  echo "## backup"
  ts="$(date +%Y%m%d%H%M%S)"
  [ -f "$LICENSE_DIR/license.ini" ] && cp -a "$LICENSE_DIR/license.ini" "$LICENSE_DIR/license.ini.bak.$ts"
  [ -f "$LICENSE_DIR/license.key" ] && cp -a "$LICENSE_DIR/license.key" "$LICENSE_DIR/license.key.bak.$ts"
  echo "backup_ts=$ts"
  printf '%s\n' "$SERIAL_KEY" > "$LICENSE_DIR/license.key"
  chmod 600 "$LICENSE_DIR/license.key"
  echo
  echo "## run demo for online activation"
  set +e
  timeout 90 ./run.sh armv8
  status=$?
  set -e
  echo
  echo "## timeout_status=$status"
  echo
  echo "## license files"
  ls -la "$LICENSE_DIR"
  wc -c "$LICENSE_DIR/license.ini" "$LICENSE_DIR/license.key"
} 2>&1 | tee "$REPORT"

if grep -q 'after sdk_init' "$REPORT" && grep -q 'face_num' "$REPORT"; then
  echo "ONLINE_ACTIVATE_RESULT=PASS"
else
  echo "ONLINE_ACTIVATE_RESULT=CHECK_REPORT"
fi

echo "REPORT=$REPORT"
