#!/bin/sh
#
# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#
# SUNWtxfnt (Thai X Windows Platform required Fonts Package) postinstall script.
#

EXEC_BASE=/usr
PKGCOND=/usr/bin/pkgcond
MKFONTDIR=$EXEC_BASE/openwin/bin/mkfontdir
ENV_MKFONTDIR=$MKFONTDIR
DISKLESS_SRVC=`echo $BASEDIR | /usr/bin/grep export/Solaris_[1-9][0-9]/usr_${ARCH}.all`

is_srngz=99
is_ngz=99

if [ -x $PKGCOND ]; then
     $PKGCOND -v is_sparse_root_nonglobal_zone > /dev/null 2>&1
     is_srngz=$?
     $PKGCOND -v is_nonglobal_zone > /dev/null 2>&1
     is_ngz=$?
fi

if [ $is_ngz -eq 0 ]; then
    if [  "$DISKLESS_SRVC" ]; then
        EXEC_BASE=/usr
    else
        EXEC_BASE=$BASEDIR
    fi

    MKFONTDIR=$EXEC_BASE/openwin/bin/mkfontdir
    ENV_MKFONTDIR="env LD_LIBRARY_PATH=$BASEDIR/openwin/server/lib:$BASEDIR/openwin/lib $MKFONTDIR"
fi

if [ $is_srngz -ne 0 ]; then
    if [ ! -x $MKFONTDIR ]; then
        # if mkfontdir doesn't exist we cannot proceed
        exit 2
    fi
fi

##
## 'pkgcond' does not exist when you do live upgrade from S8/S9
## so in that case, use 'touch' instead for the testing
##
test_writable() {
    if [ $is_srngz -ne 99 ]; then
        $PKGCOND is_path_writable $1 && return $?
    else
        /usr/bin/touch $1/.test.$$ > /dev/null 2>&1
        if [ $? !=  0 ]; then
            return 1
        else
            rm -f  $1/.test.$$ > /dev/null 2>&1
            return 0
        fi
    fi
}

FONTINSTDIR=$BASEDIR/openwin/lib/locale/th_TH/X11/fonts
for i in 75dpi TrueType; do
    if [ -d  $FONTINSTDIR/$i ]; then
            if test_writable $FONTINSTDIR/$i; then
                cd $FONTINSTDIR/$i
                $ENV_MKFONTDIR .
            fi
    fi
done

installf -f $PKGINST || exit 2

PKG="SUNWtdbas SUNWtddst SUNWtddte SUNWtdezt SUNWtdhe SUNWtdim SUNWtdwm SUNWtjmfp SUNWtpdas SUNWtscgu"

cat > /tmp/admin.dflt.$$ << EOF
mail=
instance=overwrite
partial=nocheck
runlevel=nocheck
idepend=nocheck
rdepend=nocheck
space=nocheck
setuid=nocheck
conflict=nocheck
action=nocheck
basedir=default
EOF

REM_SCRIPT=/tmp/pkgremoval.$PKGINST.$$
echo "PATH=/usr/sadm/bin:$PATH" > $REM_SCRIPT
do_pkgrm() {
echo "sleep 3" >> $REM_SCRIPT
echo "echo Now removing old instance of $1" >> $REM_SCRIPT
        eval echo `gettext SUNW_INSTALL_LIBSVC 'Removing package $1:'`
        if [ -n "${PKG_INSTALL_ROOT}" ]; then
        echo "pkgrm -M -R ${PKG_INSTALL_ROOT} -a /tmp/admin.dflt.$$ -n $1" >> $REM_SCRIPT
	else
	echo "pkgrm -M -a /tmp/admin.dflt.$$ -n $1" >> $REM_SCRIPT
	fi
        # Debugging callback for do_pkgrm
        # Callback not found end do_pkgrm "rmbase=$rmbase" "pkg=$2"
}

for i in $PKG 
do
if [ -n "${PKG_INSTALL_ROOT}" ]; then
	(pkgparam -R ${PKG_INSTALL_ROOT} $i ARCH | grep -w sparcall) > /dev/null 2>&1 
else
	(pkgparam  $i ARCH | grep -w sparcall) > /dev/null 2>&1
fi
	exist=$?
	if [ $exist -eq 0 ] ; then
		do_pkgrm $i
	fi
done

if [ -f $REM_SCRIPT ]; then
        sh $REM_SCRIPT &
fi
        # Debugging callback for do_pkgrm

PATH=/usr/bin:{$PATH}
PRODREG=/usr/bin/prodreg

# Exit if prodreg does not exist
[ ! -x "$PRODREG" ] && exit 0

exit 0
