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

if [ "$#" -ne 2 ]; then
  echo "Usage: $0 /path/to/license.ini /path/to/license.key" >&2
  exit 2
fi

SRC_INI="$1"
SRC_KEY="$2"
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-apply-license-$(date +%Y%m%d%H%M%S).txt"

if [ ! -s "$SRC_INI" ]; then
  echo "ERROR: license.ini is missing or empty: $SRC_INI" >&2
  exit 1
fi

if [ ! -s "$SRC_KEY" ]; then
  echo "ERROR: license.key is missing or empty: $SRC_KEY" >&2
  exit 1
fi

{
  echo "## apply license"
  date
  echo "SDK_DIR=$SDK_DIR"
  echo "LICENSE_DIR=$LICENSE_DIR"
  echo "SRC_INI=$SRC_INI"
  echo "SRC_KEY=$SRC_KEY"
  echo
  echo "## before"
  ls -la "$LICENSE_DIR"
  wc -c "$LICENSE_DIR/license.ini" "$LICENSE_DIR/license.key" 2>/dev/null || true
  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"
  echo
  echo "## copy"
  install -m 600 "$SRC_INI" "$LICENSE_DIR/license.ini"
  install -m 600 "$SRC_KEY" "$LICENSE_DIR/license.key"
  echo
  echo "## after"
  ls -la "$LICENSE_DIR"
  wc -c "$LICENSE_DIR/license.ini" "$LICENSE_DIR/license.key"
  md5sum "$LICENSE_DIR/license.ini" "$LICENSE_DIR/license.key"
} 2>&1 | tee "$REPORT"

echo
echo "REPORT=$REPORT"
