#!/bin/bash
# atokx2 install/uninstall script for Debian systems

# definition of variables
ARCHIVEFILE=atokx-17.0-2.0.i386.tar.gz
ARCHIVEMD5=dfa73d583cac1c82b6d1a2b71148f588
ARCHIVEDIR=/usr/lib/atokx2
DEFAULTDIR=/cdrom/bin/ATOK

# definition of function
usage () {
    echo "Usage: atokx2-install install [sourcedir]"
    echo "       atokx2-install uninstall"
}

install_atokx2 () {
    check_archive ${srcdir}/${ARCHIVEFILE} ${ARCHIVEMD5}
    cd ${ARCHIVEDIR} && tar xzf ${filename} 2>/dev/null
    mkdir -p /opt /etc/opt/atokx2 /var/opt/atokx2/users /var/opt/atokx2/system
    ln -s ${ARCHIVEDIR}/opt/atokx2/sbin/atokx2mngdaemon /usr/sbin/
    ln -s ${ARCHIVEDIR}/usr/lib/im/leif/atokx2.so /usr/lib/im/leif/
    ln -s ${ARCHIVEDIR}/usr/lib/im/locale/ja/atokx2/atokx2aux.so /usr/lib/im/locale/ja/atokx2/
    ln -s ${ARCHIVEDIR}/etc/opt/atokx2/atokx2client.cf /etc/opt/atokx2/
    ln -s ${ARCHIVEDIR}/etc/opt/atokx2/atokx2server.cf /etc/opt/atokx2/
    ln -s ${ARCHIVEDIR}/opt/atokx2 ${ATOKX2ROOT}/opt/
}

uninstall_atokx2 () {
    rm -f /usr/sbin/atokx2mngdaemon
    rm -f /usr/lib/im/leif/atokx2.so
    rm -f /usr/lib/im/locale/ja/atokx2/atokx2aux.so
    rm -f /etc/opt/atokx2/atokx2client.cf
    rm -f /etc/opt/atokx2/atokx2server.cf
    rm -f /opt/atokx2
    rmdir -p --ignore-fail-on-non-empty /opt /etc/opt/atokx2 /var/opt/atokx2/users /var/opt/atokx2/system 2>/dev/null
    rm -rf /usr/lib/atokx2/*
}

check_archive () {
    filename=$1
    md5sum=$2
    if [ ! -e "${filename}" -o \
	"`md5sum -b ${filename} | sed -e 's/ .*$//'`" != "${md5sum}" ]; then
	bad_archive ${filename}
	return 1
    fi
    return 0
}

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

# process args
if [ "$1" != "install" -a "$1" != "uninstall" ]; then
    usage
    exit 1
fi

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

    # get archive source dir
    if [ -z "$2" ]; then
    	echo -n "Please input source directory [$DEFAULTDIR]: "
	read srcdir
	if [ -z "$srcdir" ]; then
		srcdir=$DEFAULTDIR
	fi
    else
	srcdir=$2
    fi
    install_atokx2

    if [ -z "`/bin/pidof atokx2mngdaemon`" ]; then
    	/etc/init.d/atokx2 start
    fi

elif [ "$1" = "uninstall" ]; then
    if [ -n "`/bin/pidof atokx2mngdaemon`" ]; then
    	/etc/init.d/atokx2 stop
    fi
    uninstall_atokx2
fi
