#!/bin/sh
# ---------------------------------------------- #

##### 環境変数の設定 #############################
# コマンドの定義
#arp=/sbin/arp
awk=/bin/awk
cat=/bin/cat
#chkconfig=/sbin/chkconfig
chmod=/bin/chmod
chown=/bin/chown
clear=/usr/bin/clear
cmp=/usr/bin/cmp
cp=/bin/cp
cut=/bin/cut
echo=/bin/echo
touch=/bin/touch
#env=/usr/bin/env
grep=/bin/grep
java=${JAVA_HOME}/bin/java
ls=/bin/ls
ln=/bin/ln
mkdir=/bin/mkdir
#mount=/bin/mount
mv=/bin/mv
#ping=/bin/ping
#postgresql="/etc/rc.d/init.d/postgresql"
#postgresql_smx="/etc/rc.d/init.d/postgresql-smx"
ps=/bin/ps
psql=/usr/bin/psql
pwd=/bin/pwd
rm=/bin/rm
rpm=/bin/rpm
#scp=/usr/bin/scp
sed=/bin/sed
shutdown=/sbin/shutdown
sync=/bin/sync
tar=/bin/tar
tr=/usr/bin/tr
#umount=/bin/umount
unzip=/usr/bin/unzip
wc=/usr/bin/wc
zip=/usr/bin/zip
tee=/usr/bin/tee
date=/bin/date


smx_backup_cmd=${INST_HOME}/backup.sh


# 改行コード定義
LF='
'

# Patch information
#FROM_VER="3.2.1"  # backupName は module_ver-3.2.1.tar とする
TO_VER="3.3.0"
SCOPE_VER="3.2.0 3.2.1 3.2.2"   # 8個まで対応（表示的に）
PATCH_INFO="Ver-$FROM_VER ---> Ver-$TO_VER"
UNPATCH_INFO="Ver-$TO_VER ---> Ver-$FROM_VER"
MEMORYLEAK_APPVER="320"

# Module file
MODULE_PKG_FILE=${INST_HOME}/module_ver-$TO_VER.tar.gz

# Module extract directory
MODULE_DIR=${INST_HOME}/module

# Backup infomartion
#BACKUP_DIR=/backup/data
BACKUP_DIR=/backup/data/updater_backup_before_ver-$TO_VER
BACKUP_PKG_FILE=${BACKUP_DIR}/module_ver-$TO_VER.tar
BACKUP_DELETE_FILE=${BACKUP_DIR}/delete_module_ver-$TO_VER.tar
BACKUP_CRON_FILE=${BACKUP_DIR}/cron_ver-$TO_VER.tar
BACKUP_VERSION=${BACKUP_DIR}/SMX_VERSION-$TO_VER.tar
BACKUP_WIN=${BACKUP_DIR}/winlogon_module-$TO_VER.tar.gz
BACKUP_PKG_FILE_BAK=${BACKUP_DIR}/module_ver-$TO_VER.tar.bak

# バックアップ退避(アップデート後消す)
BACKUP_BIN=/backup/bin
BACKUP_TMP_DIR=${INST_HOME}/backup_tmp
SMX_BACKUP_DB=/backup/data/conf/var_opt_cse.tar.gz

# Salvage information
SALVAGE_DIR=$BACKUP_DIR
SALVAGE_PKG_FILE=${SALVAGE_DIR}/module_ver-$TO_VER-salvege.tar


# 配布ファイル情報
#LIST_FILE=${INST_HOME}/list.txt
LIST_FILE_NAME=list.txt
ESCAPE_LIST_FILE_NAME=escape_list.txt

# RPM情報ファイル
#RPM_FILE=${INST_HOME}/rpm.txt
#RPM_FILE_NAME=rpm.txt

# バックアップ情報ファイル
BKUP_LIST_FILE=${INST_HOME}/backup.txt

# レストア情報ファイル
RESTORE_TXT_FILE=${INST_HOME}/restore.txt

# SQL Query情報ファイル
SQL_TXT_FILE=${INST_HOME}/query.txt
UNSQL_TXT_FILE=${INST_HOME}/un_query.txt
QUERY_CHECK_FILE=${INST_HOME}/query_check.txt
ARL_SQL_FLAG=already_sql_flag-ver

# ディレクトリ情報ファイル
DIR_TXT_FILE=${INST_HOME}/dir.txt

# EasySetup モジュールインストール済みフラグ
JSCH_FLG=jsch_already_install_flg

# PS OPTION
PS_OPT="-efww"

# TAR OPTION
ZT_OPT="-ztvf"
ZX_OPT="-zxvf"
ZC_OPT="-zcvf"
T_OPT="-tvf"
X_OPT="-xvf"
U_OPT="-uvf"
DEL_OPT="--delete -f"
D_OPT="-df"

# Process check CMD string
AUTH_CMD="nanako.param=/opt/cse/smx/auth/servlet/api/"
ADMIN_CMD="nanako.param=/opt/cse/smx/admin/servlet/api/"
GSB_CMD="nanako.param=/opt/cse/smx/gsb/servlet/api/ "
ISB_CMD="nanako.param=/opt/cse/smx/isb/servlet/api/ "
RADIUS_CMD="/usr/local/sbin/radiusd"
PGSQL_CMD="/usr/bin/postmaster"
PGPOOL_CMD="/usr/bin/pgpool"
EZS_CMD="nanako.param=/opt/cse/smx/setup/servlet/api/"

# SECURE MATRIX command string
AUTH_START="service smx-auth start"
ADMIN_START="service smx-admin start"
GSB_START="service smx-gsb start"
ISB_START="service smx-isb start"
RADIUS_START="service radiusd start"
PGSQL_START="service postgresql-smx start"
PGPOOL_START="service pgpool-smx start"
BASEFILTER_START="service base_filter start"
CRON_START="service crond start"
EZS_START="service smx-setup start"

AUTH_STOP="service smx-auth stop"
ADMIN_STOP="service smx-admin stop"
GSB_STOP="service smx-gsb stop"
ISB_STOP="service smx-isb stop"
RADIUS_STOP="service radiusd stop"
PGSQL_STOP="service postgresql-smx stop"
PGPOOL_STOP="service pgpool-smx stop"
CRON_STOP="service crond stop"
EZS_STOP="service smx-setup stop"

AUTH_RESTART="service smx-auth restart"
ADMIN_RESTART="service smx-admin restart"
GSB_RESTART="service smx-gsb restart"
ISB_RESTART="service smx-isb restart"
RADIUS_RESTART="service radiusd restart"
PGSQL_RESTART="service postgresql-smx restart"
PGPOOL_RESTART="service pgpool-smx restart"
BASEFILTER_RESTART="service base_filter restart"
CRON_RESTART="service crond restart"
EZS_RESTART="service smx-setup restart"

# WEB-INF/libのパス
AUTH_LIB_FILE=/opt/cse/smx/auth/servlet/webapps/auth/WEB-INF/lib
GSB_LIB_FILE=/opt/cse/smx/gsb/servlet/webapps/ROOT/WEB-INF/lib
ISB_LIB_FILE=/opt/cse/smx/isb/servlet/webapps/isb/WEB-INF/lib

# ユーザ情報の定義
SMXD_USER=smxd
#SMXD_HOME=`su - $SMXD_USER -c "$env | $grep ^HOME | $sed -e s/^HOME=//g"`
SMXD_HOME=/home/smxd

SMX_INST=${SMXD_HOME}/installer
INST_TMP=${SMX_INST}/tmp

POSTGRES_USER=postgres

# SMX patch and update history
SMX_HIST=${SMXD_HOME}/installer/history.txt

# 一時ファイルの定義
TMP_FILE=${INST_HOME}/tmp_file$$

# 配布に失敗したファイルの一覧保持用一時ファイル
DEPLOY_ERR_FILE=${INST_HOME}/deploy_err.tmp

# サルベージしたファイルの一覧保持用一時ファイル
SALVAGE_LIST_FILE=${INST_HOME}/salvage_list.tmp

# 当該パッチ適用により新規追加されたファイルの一覧を保持するファイル
ADDED_LIST_FILE=${INST_HOME}/added_files.lst



# 設定情報（入力値保持用）ファイル
SETUP_PROPERTIES_FILE=/home/smxd/installer/setup.props
BAK_SETUP_PROPERTIES_FILE=${SETUP_PROPERTIES_FILE}.bak

# パラメータ変換用XMLファイル
REPLACE_XML_FILE1=${INST_HOME}/replace1.xml
REPLACE_XML_FILE2=${INST_HOME}/replace2.xml
REPLACE_XML_FILE3=${INST_HOME}/replace3.xml
INSERT_XML_FILE1=${INST_HOME}/insert1.xml
INSERT_XML_FILE2=${INST_HOME}/insert2.xml
INSERT_XML_FILE3=${INST_HOME}/insert3.xml
REPEAT_XML_FILE=${INST_HOME}/repeat.xml

# ログファイルの定義
LOG_FILE=${INST_HOME}/log/install.log
ERR_LOG_FILE=${INST_HOME}/log/err.log


# freeradius用：認証サーバ公開鍵（証明書は同一のものを使う。公開鍵の出力先のみ変更する。）
# ※今回はホスト名の取得を行うのでファイル名の決め打ちができない（読み込みの順序の問題）
#   よって今回は拡張子とパスだけを定義しておく。実際の値はsetup.propsで保持する。
AUTH_CRT_FILE_EXT=.crt
AUTH_CRT_RADIUS_PATH=/etc/opt/cse/ssl

# freeradius用：クライアント秘密鍵・公開鍵
CLIENT_SEC_FILENAME=pam_smx_key.pem
CLIENT_PUB_FILENAME=pam_smx_crt.pem
CLIENT_SEC_FILE=/etc/opt/cse/ssl/$CLIENT_SEC_FILENAME
CLIENT_PUB_FILE=/etc/opt/cse/ssl/$CLIENT_PUB_FILENAME

# WindowsLogon モジュールパス
WIN_DOWNLOAD_PATH=/opt/cse/smx/admin/servlet/webapps/admin/client
WIN_MODULE=SmxWinAuthClient*.zip
WIN_FILE_PATH=/home/smxd/installer/package/winauth
WIN_MSI=SECUREMATRIXforWindows
#WIN_MSI_AP500=SECUREMATRIXforWindows_2.1.0.msi
WIN_XP_FILE_PATH=/home/smxd/installer/package/winauth/XP
WIN_VISTA_FILE_PATH=/home/smxd/installer/package/winauth/VISTA
WIN_XP_MODULE=SECUREMATRIXforWindows_2.2.0.msi
WIN_DLL_MODULE=SmxGina.dll
WIN_VISTA_MODULE=SECUREMATRIXforWindowsVista_1.1.0.msi
WIN_XP_CONF=SmxGina.ini
WIN_XP_CONF_ORG=SmxGina.ini.org
WIN_VISTA_CONF_ORG=config.org
WIN_VISTA_CONF=config.xml
WIN_XP_DOWNLOAD_MODULE=SmxWinAuthClient_2_2_0.zip
WIN_VISTA_DOWNLOAD_MODULE=smx_winlogonvista_v110_module.zip

# インストール時の情報を保持するファイル
INSTALL_INI=${INST_HOME}/install.ini

# iniファイル定義
INSTALL_INFO_INI_FILE=${INST_HOME}/install_information.ini

# securematrix_infomartion
SMX_INFO_TXT_FILE=/opt/cse/smx/common/bin/securematrix_infomartion.txt
UNKNOWN_WORD="UNKNOWN"

# for Configure extract
SMX_INSTALLER_HOME=${SMXD_HOME}/installer
INSTALLERS_INSTALL_INFO_INI_FILE=${SMX_INSTALLER_HOME}/install_information.ini

# monitor/service_list
# Radius の使用有無を検証するために使用する
SMX_SERVICE_LIST_FILE=/opt/cse/smx/common/bin/monitor/service_list

# JSP コンパイルファイルパス
ADMIN_JSP=/opt/cse/smx/admin/servlet/work/Catalina/localhost/smx_admin
ROOT_JSP=/opt/cse/smx/gsb/servlet/work/Catalina/localhost/_
SMXSLL_JSP=/opt/cse/smx/gsb/servlet/work/Catalina/localhost/smx_sll
ISB_JSP=/opt/cse/smx/isb/servlet/work/Catalina/localhost/isb

# clusterManager 実行パス
CLUSTER_MAN_CMD=/opt/cse/smx/admin/bin/util/clusterManager.sh

# jsch ファイルパス
oldJschFile="/opt/cse/smx/setup/servlet/webapps/ROOT/WEB-INF/lib/jsch-0.1.28.jar"
bakJschFile="/opt/cse/smx/setup/servlet/webapps/ROOT/WEB-INF/lib/jsch-0.1.28.jar.bak"
old2JschFile="/opt/cse/smx/setup/servlet/webapps/ROOT/WEB-INF/lib/jsch-0.1.37.jar"
bak2JschFile="/opt/cse/smx/setup/servlet/webapps/ROOT/WEB-INF/lib/jsch-0.1.37.jar.bak"
newJschFile="/opt/cse/smx/setup/servlet/webapps/ROOT/WEB-INF/lib/jsch-0.1.37-1.jar"

# ----- ミドルウェア更新 ----------------------------------------------------- #
# RPM list files (for install)
DELETE_RPM4INST_FILENAME=deleteRPM4inst.txt
INSTALL_RPM4INST_FILENAME=installRPM4inst.txt

# RPM list files (for uninstall)
DELETE_RPM4UNINST_FILENAME=deleteRPM4uninst.txt
INSTALL_RPM4UNINST_FILENAME=installRPM4uninst.txt
# ---------------------------------------------------------------------------- #

# ----- 認証サーバ設定用ファイル --------------------------------------------- #
# admin.properties (既存値の抽出をするために必要)
ADMIN_PROPERTIES_FILE=${SMX_ADMIN_HOME}/servlet/webapps/admin/WEB-INF/classes/admin.properties
# ---------------------------------------------------------------------------- #

# ----- GSB サーバ設定用ファイル --------------------------------------------- #
# gsb.properties (既存値の抽出をするために必要)
GSB_PROPERTIES_FILE=${SMX_GSB_HOME}/servlet/webapps/ROOT/WEB-INF/classes/gsb.properties
# ---------------------------------------------------------------------------- #

# ----- ISB サーバ設定用ファイル --------------------------------------------- #
# isb.properties (既存値の抽出をするために必要)
ISB_PROPERTIES_FILE=${SMX_ISB_HOME}/servlet/webapps/isb/WEB-INF/classes/isb.properties
# ---------------------------------------------------------------------------- #

#----- 各ディストリビューション共通ファイル ------#
# モジュールリスト格納ディレクトリ
COMMON=COMMON

#---- WEB.XML -----#
GSB_ROOT_WEBXML=/opt/cse/smx/gsb/servlet/webapps/ROOT/WEB-INF/web.xml
GSB_SLL_WEBXML=/opt/cse/smx/gsb/servlet/webapps/smx_sll/WEB-INF/web.xml
ISB_WEBXML=/opt/cse/smx/isb/servlet/webapps/isb/WEB-INF/web.xml

#---- ISB プロミスキャスモード対応 ----#
PROMISC_STR="promisc"
PROMISC_OFF="off"
CONFIGFILE=/opt/cse/smx/isb/etc/isbshconf.cfg
INST_CONFIGFILE=/home/smxd/installer/tmp/opt/cse/smx/isb/etc/isbshconf.cfg