#!/bin/bash

targetVersion=$1
tseAdapterDownloadUrl=$2

# get tse version via php
tseVersionCommand=$(cat <<- 'PHP'
$ini = parse_ini_file('/var/www/html/Resource/config/config.ini', true);
$tseUrl = $ini['TSE']['TseHost'] ?? 'http://localhost:8014';
$versionResp = file_get_contents("$tseUrl/adapterVersion");
$version = json_decode($versionResp, true)['major'] ?? 'null';
echo $version;
PHP
)
tseVersion=`php -r "$tseVersionCommand"`

# exit if no need to update
if [ $tseVersion != 'null' ]; then
  if [ $targetVersion -le $tseVersion ]; then
    echo "无需更新TSE, 当前版本已是目标版本($tseVersion)"
    exit 1
  fi
fi

# get os version via php
osCommand=$(cat <<- 'PHP'
$osVersion = shell_exec('cat /proc/version');
if (strpos($osVersion, 'microsoft') !== false || strpos($osVersion, 'WSL2') !== false) {
  $os = 'windows';
} else {
  $os = 'linux';
}
echo $os;
PHP
)
os=`php -r "$osCommand"`

# download tse adapter
wget -O latest-tse-adapter.jar "$tseAdapterDownloadUrl"

if [ $os == 'windows' ]; then
  # find tse dir
  tseDirSearchCommand=$(cat <<- 'PHP'
$userDirs = scandir('/mnt/c/Users');

$tseDir = null;
foreach ($userDirs as $userDir) {
    $tryDir = "/mnt/c/Users/$userDir/Desktop/AadenTseOnWindows";
    if (file_exists($tryDir)) {
        $tseDir = $tryDir;
        break;
    }
}

if ($tseDir) {
    echo $tseDir;
} else {
    echo 'null';
}
PHP
  )
  tseDir=`php -r "$tseDirSearchCommand"`

  if [ tseDir == 'null' ]; then
    echo "未找到TSE文件夹，自动更新失败"
    exit 1
  fi

  # copy and override
  cp -f latest-tse-adapter.jar "$tseDir/tse-0.0.3.jar"

  echo "新TSE文件覆盖完成。请客服注意引导老板，接受弹出来的框"
  echo "可以使用此命令检查tse版本：curl --location 'localhost:8014/adapterVersion'"

  # restart service
  $tseDir/AadenTseServiceRegister.exe restart

else
  echo "当前系统为Linux系统，更新TSE请使用 aaden-cli update-tse"
  exit 1
fi

echo "自动更新脚本结束"
