#!/bin/bash
# postinst script for atokx

# definition of variables
UPSTREAM=1.0-1
ATOKX_ARC=atokx-1.0-1.i386.tgz
ATOKX_MD5=979d5235e0937e3d25c8498e71cb9afc
IIIMF_ARC=iiimf.tgz
IIIMF_MD5=37957125d29856283f5e6a0be349de72
ATOKX_PATCH=atokx-1.0-1.i386.patch01.tgz
ATOKX_PATCH_MD5=34d0ebb45072cd3db6e3dfdb844f065e
IIIMF_PATCH=iiimf-1-2.i386.patch02.tgz
IIIMF_PATCH_MD5=3be2d72a0d7429998addd6fa792efbca
ATOKXTMP=/usr/lib/atokx/archive
UPSTREAM_VERSION_FILE=/usr/lib/atokx/VERSION
ATOKX_PATCH_FILE=/usr/lib/atokx/PATCH_ATOKX01
IIIMF_PATCH_FILE=/usr/lib/atokx/PATCH_IIIMF02
CHECKS=/usr/lib/atokx/patchcheck.pl

# definition of function
bad_archive () {
    echo "Bad archive: $1" 1>&2
    exit 1
}

get_file () {
    mkdir -p -m 700 ${ATOKXTMP}
    /usr/bin/wget -t 3 -O ${ATOKXTMP}/$1 http://www3.justsystem.co.jp/download/atok/up/lin/$1
}

# use debconf
. /usr/share/debconf/confmodule

if [ "$1" = "configure" ]; then

    if [ -e ${UPSTREAM_VERSION_FILE} ]; then
	INSTALLED_UPSTREAM=`cat ${UPSTREAM_VERSION_FILE} 2>/dev/null`
    fi

    if [ "${INSTALLED_UPSTREAM}" != "${UPSTREAM}" ]; then

	# get debconf variable
	db_get atokx/archive_dir
	DIR=$RET

	# check atokx.tgz
	if [ ! -e "${DIR}/${ATOKX_ARC}" -o \
	     "`md5sum -b ${DIR}/${ATOKX_ARC} | sed -e 's/ .*$//'`" != \
	     "${ATOKX_MD5}" ]; then
	    db_fset atokx/archive_dir seen false
	    bad_archive ${DIR}/${ATOKX_ARC}
	fi

	# check iiimf.tgz
	if [ ! -e "${DIR}/${IIIMF_ARC}" -o \
	     "`md5sum -b ${DIR}/${IIIMF_ARC} | sed -e 's/ .*$//'`" != \
	     "${IIIMF_MD5}" ]; then
	    db_fset atokx/archive_dir seen false
	    bad_archive ${DIR}/${IIIMF_ARC}
	fi

	# remove oldfile
	rm -rf /usr/lib/atokx/*
	rm -f /usr/lib/im/csconv
	rm -f /usr/lib/im/leif/atok12.so
	rm -f /usr/lib/im/locale/ja/atokserver
	rm -f /usr/lib/im/share/icu/1.4.0
	rm -f /usr/lib/im/htt
	rm -f /usr/lib/im/htt_server
	rm -f /usr/lib/im/htt_xbe
	rm -f /usr/lib/im/httx
	rm -f /usr/lib/im/xiiimp.so.2
	rm -f /usr/lib/locale/ja/atokserver
	rm -f /usr/share/doc/atokx/help-html
	rm -f /usr/share/doc/atokx/information
	rm -f /var/lib/locale/ja/atokserver/original
	rm -f /var/lib/locale/ja/atokserver/systemdic

	if [ -e ${ATOKXTMP} ]; then
	    rm -rf ${ATOKXTMP}
	fi

	mkdir -p -m 0700 ${ATOKXTMP}
	cd ${ATOKXTMP}

	# expand atokx
	tar xzf ${DIR}/${ATOKX_ARC} 2>/dev/null
	tar xzf ${DIR}/${IIIMF_ARC} 2>/dev/null

	# install atokx
	mv -f usr/lib/im /usr/lib/atokx/
	mv -f usr/lib/locale /usr/lib/atokx/
	ln -sf /usr/lib/atokx/im/leif/atok12.so /usr/lib/im/leif/
	ln -sf /usr/lib/atokx/im/csconv /usr/lib/im/
	ln -sf /usr/lib/atokx/im/locale/ja/atokserver /usr/lib/im/locale/ja/
	ln -sf /usr/lib/atokx/im/share/icu/1.4.0 /usr/lib/im/share/icu/
	ln -sf /usr/lib/atokx/im/htt /usr/lib/im/
	ln -sf /usr/lib/atokx/im/htt_server /usr/lib/im/
	ln -sf /usr/lib/atokx/im/htt_xbe /usr/lib/im/
	ln -sf /usr/lib/atokx/im/httx /usr/lib/im/
	ln -sf /usr/lib/atokx/im/xiiimp.so.2 /usr/lib/im/
	ln -sf /usr/lib/atokx/locale/ja/atokserver /usr/lib/locale/ja/
	ln -sf /usr/lib/atokx/im/locale/ja/atokserver/help /usr/share/doc/atokx/help-html
	ln -sf /usr/lib/atokx/im/locale/ja/atokserver/information /usr/share/doc/atokx/information
	ln -sf /usr/lib/locale/ja/atokserver/original /var/lib/locale/ja/atokserver/
	ln -sf /usr/lib/locale/ja/atokserver/systemdic /var/lib/locale/ja/atokserver/

	echo "${UPSTREAM}" > ${UPSTREAM_VERSION_FILE}

    fi

    db_get atokx/have_patches || true
    HAVE_PATCHES=${RET}

    if [ ${HAVE_PATCHES} = true ]; then
	db_get atokx/patches_dir || true
	PATCH_DIR=${RET}
    else
	PATCH_DIR=${ATOKXTMP}
    fi

    if [ ! -x $CHECKS ] || ! $CHECKS; then

	# get ATOKX patch
	db_get atokx/connect_inet
	if [ ${HAVE_PATCHES} = false -a ${RET} = true ]; then
		get_file ${ATOKX_PATCH}
	fi

	# check ATOKX patch
	if [ ! -e "${PATCH_DIR}/${ATOKX_PATCH}" -o \
	     "`md5sum -b ${PATCH_DIR}/${ATOKX_PATCH} | sed -e 's/ .*$//'`" != \
	     "${ATOKX_PATCH_MD5}" ]; then
	    db_fset atokx/have_patches seen false
	    db_fset atokx/patches_dir seen false
	    bad_archive ${PATCH_DIR}/${ATOKX_PATCH}
	fi

	# apply ATOKX patch
	mkdir -p -m 0700 ${ATOKXTMP}
	cd ${ATOKXTMP}
	tar xzf ${PATCH_DIR}/${ATOKX_PATCH} 2>/dev/null

	mv -f usr/lib/im/leif/atok12.so /usr/lib/atokx/im/leif/atok12.so
	mv -f usr/lib/locale/ja/atokserver/atok12config.so /usr/lib/atokx/locale/ja/atokserver/atok12config.so
	mv -f usr/lib/locale/ja/atokserver/atokmngdaemon /usr/lib/atokx/locale/ja/atokserver/atokmngdaemon
	mv -f usr/lib/im/locale/ja/atokserver/xaux/AtokPaletteAux /usr/lib/atokx/im/locale/ja/atokserver/xaux/AtokPaletteAux
	mv -f usr/lib/im/locale/ja/atokserver/xaux/CustomizerAux /usr/lib/atokx/im/locale/ja/atokserver/xaux/CustomizerAux

    fi

    if [ ! -x $CHECKS ] || ! $CHECKS; then

	# get iiimf patch
	db_get atokx/connect_inet
	if [ ${HAVE_PATCHES} = false -a ${RET} = true ]; then
		get_file ${IIIMF_PATCH}
	fi

	# check IIIMF patch
	if [ ! -e "${PATCH_DIR}/${IIIMF_PATCH}" -o \
	     "`md5sum -b ${PATCH_DIR}/${IIIMF_PATCH} | sed -e 's/ .*$//'`" != \
	     "${IIIMF_PATCH_MD5}" ]; then
	    bad_archive ${PATCH_DIR}/${IIIMF_PATCH}
	fi

	# apply IIIMF patch
	mkdir -p -m 0700 ${ATOKXTMP}
	cd ${ATOKXTMP}
	tar xzf ${PATCH_DIR}/${IIIMF_PATCH} 2>/dev/null

	mv -f usr/lib/im/htt_server /usr/lib/atokx/im/htt_server
	mv -f usr/lib/im/htt_xbe /usr/lib/atokx/im/htt_xbe
	mv -f usr/lib/im/xiiimp.so.2 /usr/lib/atokx/im/xiiimp.so.2

    fi

    if [ ! -e /var/locale ]; then
	cd /var; ln -s lib/locale .
    fi

    db_get atokx/shift_space
    if [ ${RET} = true ]; then
	touch /usr/lib/im/locale/ja/atokserver/shift_space
    fi

    db_get atokx/restart
    if [ ${RET} = true ]; then
	if [ -n "$2" -a "$2" != "<unknown>" ]; then
	    if [ -x /usr/sbin/invoke-rc.d ]; then
	        invoke-rc.d atokx stop || true
		sleep 1
		invoke-rc.d atokx start
		sleep 5
	    else
	        /etc/init.d/atokx stop
	        sleep 1
	        /etc/init.d/atokx start
	        sleep 5
	    fi
	fi
    fi

    if [ -z "`/bin/pidof atokmngdaemon`" ]; then
        if [ -x /usr/sbin/invoke-rc.d ]; then
	    invoke-rc.d atokx start
	else
    	    /etc/init.d/atokx start
	fi
    fi

fi

#DEBHELPER#
