#!/bin/sh
# システムチェック
# ---------------------------------------------- #


##### Main routine ###############################

# Function読み込み
. ${INST_HOME}/function.sh

# 初期処理
initialize

# 判別値の初期化
FLAG=0


# パラメータの取得（install or uninstall）
CHECK_TYPE=$1


# 開始出力
#CLEAR
#msg_info  "${SECUREMATRIX} の現在インストールされているバージョンをチェックします。" \
#          " "
#echo ""
#echo_sp "${SECUREMATRIX} バージョンチェック."


# バージョン情報の取得
nowVersion=`/opt/cse/smx/common/bin/information.sh | grep Version | awk '{print $NF}'`
verNum=`echo ${nowVersion} | sed -e s/'\.'/''/g -e s/'320.*'/'320'/g -e s/'321.*'/'321'/g -e s/'322.*'/'322'/g -e s/'330.*'/'330'/g`   # 3.*.*ab の '.' 'a' 'b' 'c' 等は除去する

#echo -n "SECUREMATRIX のバージョンをチェックします ... "
  
# 現在のバージョンが Ver-3.3.0 の場合アップデートを中断する。
targetVerFlag=0
alreadyFlag=0
echo ${verNum} | grep '330' > /dev/null 2>&1 ; if [ $? -eq 0 ] ; then alreadyFlag=1 ; fi
echo ${verNum} | grep '322' > /dev/null 2>&1 ; if [ $? -eq 0 ] ; then targetVerFlag=1 ; fi
echo ${verNum} | grep '321' > /dev/null 2>&1 ; if [ $? -eq 0 ] ; then targetVerFlag=1 ; fi
echo ${verNum} | grep '320' > /dev/null 2>&1 ; if [ $? -eq 0 ] ; then targetVerFlag=1 ; fi
  
# バージョンチェック結果
RET_FLG=1
write_log "Now SECUREMATRIX Version. [${nowVersion}]"

# インストールかアンインストールか判断する
if [ "${CHECK_TYPE}" = "install" ] ; then
  # 重複インストールの是非をチェック
  # 現在のバージョンがインストール適用可能かチェック
  if [ ${targetVerFlag} -eq 1 ] ; then
    # パッチを適用する前のバージョンをinstall.iniファイルに記憶しておく
    init_install
    echo "OLD_VERSION=${nowVersion}" >> ${INSTALL_INI}
    write_log "${SECUREMATRIX} のバージョンを確認"
#    echo "${SECUREMATRIX} のバージョンを確認"
#    echo ""
#    msg_dialog  "${SECUREMATRIX} のバージョンを確認できました。" \
#                "処理を継続します。"
#    WAIT_ENTER
    # v32* の判断を返却(exit は 255 までしか返却できないので下2桁を取得)
    RET_FLG=`$echo ${verNum} | $sed -e s/'3'/''/`
  else
    echo "${SECUREMATRIX} のバージョン不一致を確認！"
    echo ""
    if [ ${alreadyFlag} -eq 1 ] ; then
      arize_err "dmy" "既にアップデート済みです。"
      msg_err "ERR" \
              "" \
              "<!> 既にアップデート済みです。( ${nowVersion} )" \
              "    重複アップデートはできません。" \
              "    処理を中断します。" \
              ""
      RET_FLG=1
    else
      arize_err "dmy" "アップデート可能なバージョンではありません。"
      msg_err "ERR" \
              "" \
              "<!> 非対応バージョンの SECUREMATRIX です。( ${nowVersion} )" \
              "    対応バージョンは [ ${SCOPE_VER} ]です。" \
              "    処理を中断します。" \
              ""
      RET_FLG=1
    fi
  fi
elif [ "${CHECK_TYPE}" = "uninstall" ] ; then
  # 現在のバージョンがアンインストール適用可能かチェック
  if [ ${alreadyFlag} -eq 1 ] ; then
    write_log "${SECUREMATRIX} のバージョンを確認"
#    echo "${SECUREMATRIX} のバージョンを確認"
#    echo ""
#    msg_dialog  "${SECUREMATRIX} のバージョンを確認できました。" \
#                "処理を継続します。"
#    WAIT_ENTER
    # インストール前のバージョンを取得し、返却する [ 32* ](実際は 20 or 21 or 22 を返却)
    RET_FLG=`$cat ${INSTALL_INI} | $grep "OLD_VERSION" | $sed -e s/'.*='/''/g -e s/'\.'/''/g -e s/'320.*'/'320'/g -e s/'321.*'/'321'/g -e s/'322.*'/'322'/g -e s/'3'/''/`
  else
    echo "${SECUREMATRIX} のバージョン不一致を確認！"
    echo ""
    arize_err "dmy" "アンアップデート可能なバージョンではありません。"
    msg_err "ERR" \
            "" \
            "<!> 非対応バージョンの SECUREMATRIX です。( ${nowVersion} )" \
            "    対応バージョンは [ ${TO_VER} ] です。" \
            "    処理を中断します。" \
            ""
    RET_FLG=1
  fi
else
  echo "エラー発生！"
  echo
  msg_err "処理を中断します。" " " "<!> 予期せぬエラーです。サポートに連絡してください。"
  RET_FLG=1
fi

write_log "${SECUREMATRIX} のバージョン確認完了"

exit ${RET_FLG}
