#!/bin/bash
# LinuxMania : install ATOK X3 into Ubuntu 10.10 64bit tar ; 2010/11/26

if [ "$1" != 'terminal' ]; then
	/usr/bin/gnome-terminal -e "sudo bash -c \"$0 terminal\""
	sleep 3
	exit $?
fi

TMP=$(mktemp -d)
LOG=$TMP/log
head -n 2 "$0" | sed -n '2,1 p' | tee -a $LOG
echo ""
echo "  このスクリプトは、Ubuntu 10.10 に ATOK X3 for Linux をインストールします。"
echo "  ATOK X3 for Linux のディスクを挿入してから開始してください。"
echo ""
echo -n "  ATOK X3 for Linux の使用許諾契約書に同意して開始しますか。[y/n]"
read line
if [ "$line" != "y" ] && [ "$line" != "yes" ] && [ "$line" != "Y" ] && [ "$line" != "YES" ] ; then
	echo
	echo "中止しました。"
	sleep 3
	exit
fi
echo ""

rc=0
function fnc_exit() {
rc=$1
echo ""
nlog=${0%sh}$(date +%Y-%m-%d-%H-%M-%S).log
cp -p $LOG $nlog
echo "ログ： $nlog"
if [ $rc -eq 0 ]; then
	echo -e "設定が完了しました。 [\033[32mOK\033[0m]"
	echo "設定を反映させるために、一度ログアウトしてください。"
else
	echo -e "エラーがあったようです。 [\033[31mエラー\033[0m]"
	echo "LinxuManiaカスタマーセンターまでお問い合わせいただけますでしょうか。"
fi
echo ""
echo "[Enter] キーで終了します。"
read line
exit
}

echo "開始：$(date)" >> $LOG 2>&1

if [ $(uname -m) != 'x86_64' ]; then
	echo "$(uname -m) には対応していません。" | tee -a $LOG
	fnc_exit 16
fi

setupatok=/media/ATOKX3/setupatok_tar.sh
if [ ! -f $setupatok ]; then
	echo "ATOK X3 のディスク挿入してください。" | tee -a $LOG
	fnc_exit 16
fi

# アップデートモジュールのダウンロード
echo "アップデートモジュールのダウンロード" | tee -a $LOG

atokx3up2_tgz="atokx3up2.tar.gz"
atokx3up2_url="http://www3.justsystem.co.jp/download/atok/up/lin/${atokx3up2_tgz}"
atokx3gtk216_tgz="atokx3gtk216.tar.gz"
atokx3gtk216_url="http://www3.justsystem.co.jp/download/atok/up/lin/${atokx3gtk216_tgz}"
a20y1011lx_tgz="a20y1011lx.tgz"
a20y1011lx_url="http://www3.justsystem.co.jp/download/zipcode/up/lin/${a20y1011lx_tgz}"

wget ${atokx3up2_url} -O ${TMP}/${atokx3up2_tgz} >> $LOG 2>&1 || fnc_exit 16
wget ${atokx3gtk216_url} -O ${TMP}/${atokx3gtk216_tgz} >> $LOG 2>&1 || fnc_exit 16
wget ${a20y1011lx_url} -O ${TMP}/${a20y1011lx_tgz} >> $LOG 2>&1 || fnc_exit 16

# libwrap0 のダウンロード

# ATOK X3 本体
echo "本体のインストール" | tee -a $LOG

gtk_immodules_32=/usr/lib32/gtk-2.0/2.10.0/gtk.immodules
gtk_immodules_64=/usr/lib/gtk-2.0/2.10.0/gtk.immodules
gtk_query_immodules=/usr/bin/gtk-query-immodules-2.0

touch $gtk_immodules_32 $gtk_immodules_64

tmp_expect=${TMP}/expect
cat > ${tmp_expect} 2>>$LOG <<EOF || fnc_exit 16
#!/usr/bin/expect --
set timeout 30
spawn bash $setupatok
expect "(yes/no)" {
    send "yes\n"
}
expect "Input path of gtk-query-immodules-2.0 for 64bit application:" {
    send "${gtk_query_immodules}\n"
}
expect "Input path of gtk.immodules for 32bit application:" {
    send "${gtk_immodules_32}\n"
}
expect "Input path of gtk.immodules for 64bit application:" {
    send "${gtk_immodules_64}\n"
}
sleep 10
expect eof
EOF
chmod 755 ${tmp_expect}
${tmp_expect} >> $LOG 2>&1 || fnc_exit 16

# ATOK X3 付属の32bitライブラリ
echo "32bitライブラリをインストール" | tee -a $LOG
tar zxv -C ${TMP} -f /media/ATOKX3/bin/tarball/IIIMF/iiimf-client-lib-trunk_r3104-js?.i386.tar.gz >> $LOG 2>&1 || fnc_exit 16
tar zxv -C ${TMP} -f /media/ATOKX3/bin/tarball/IIIMF/iiimf-protocol-lib-trunk_r3104-js?.i386.tar.gz >> $LOG 2>&1 || fnc_exit 16
cp -r ${TMP}/usr/lib/* /usr/lib32 >> $LOG 2>&1 || fnc_exit 16

# アップデートモジュールを適用
echo "アップデートモジュールを適用" | tee -a $LOG

if [ -f /media/ATOKX3/bin/tarball/IIIMF/iiimf-client-lib-trunk_r3104-js1.i386.tar.gz ]; then
tar zxv -C ${TMP} -f ${TMP}/${atokx3up2_tgz} >> $LOG 2>&1 || fnc_exit 16
tar zxv -C / -f ${TMP}/atokx3up2/bin/ATOK/atokxup-20.0-3.0.0.i386.tar.gz >> $LOG 2>&1 || fnc_exit 16
tar zxv -C / --exclude='./usr/lib' -f ${TMP}/atokx3up2/bin/IIIMF/iiimf-server-trunk_r3104-js3.i386.tar.gz >> $LOG 2>&1 || fnc_exit 16
tar zxv -C ${TMP}/atokx3up2 -f ${TMP}/atokx3up2/bin/IIIMF/iiimf-server-trunk_r3104-js3.i386.tar.gz >> $LOG 2>&1 || fnc_exit 16
tar zxv -C / --exclude='./usr/lib' -f ${TMP}/atokx3up2/bin/IIIMF/iiimf-gtk-trunk_r3104-js3.i386.tar.gz >> $LOG 2>&1 || fnc_exit 16
tar zxv -C ${TMP}/atokx3up2 -f ${TMP}/atokx3up2/bin/IIIMF/iiimf-gtk-trunk_r3104-js3.i386.tar.gz >> $LOG 2>&1 || fnc_exit 16
cp -r ${TMP}/atokx3up2/usr/lib/* /usr/lib32 >> $LOG 2>&1 || fnc_exit 16
tar zxv -C / -f ${TMP}/atokx3up2/bin/IIIMF/iiimf-gtk-64-trunk_r3104-js3.x86_64.tar.gz >> $LOG 2>&1 || fnc_exit 16
fi

tar zxv -C / -f ${TMP}/${atokx3gtk216_tgz} >> $LOG 2>&1 || fnc_exit 16

tar zxv -C / -f ${TMP}/${a20y1011lx_tgz} >> $LOG 2>&1 || fnc_exit 16

# 設定
echo "設定" | tee -a $LOG
bash /opt/atokx3/sample/setting_debian4.sh >> $LOG 2>&1 || fnc_exit 16

fnc_exit 0
___END___

