#!/sbin/sh

########
#  Product: GraphicsPHIGSRT
#  Fileset: PHIGS-RUN
#  postinstall
#  @(#) $Revision: 206.1 $
########
#
# (c) Copyright Hewlett-Packard Company, 1993
#
########

	UTILS="/usr/lbin/sw/control_utils"

	if [[ ! -f $UTILS ]]
	then
		echo "ERROR: Cannot find $UTILS"
		exit 1
	fi

	. $UTILS

	exitval=$SUCCESS

################################################################################
#set -x # For debugging purposes.  _Never_ ship uncommented!!

	##
	## Set up local environment variables
	##

	SW_INSTALL_DIR="/"
	
	##
	## Test to see if either SW_ROOT_DIRECTORY or SW_LOCATION is
	## set to something other than /.  If so, set up SW_INSTALL_DIR
	## so it will not have spurious /'s in the path name.
	##
	
	if [ $SW_ROOT_DIRECTORY != / -o $SW_LOCATION != / ]
	then
		if [ $SW_ROOT_DIRECTORY != / ]
		then
			if [ $SW_LOCATION != / ]
			then
				SW_INSTALL_DIR="${SW_ROOT_DIRECTORY}${SW_LOCATION}"
			else
				SW_INSTALL_DIR="${SW_ROOT_DIRECTORY}"
			fi
		else
			if [ $SW_LOCATION != / ]
			then
				SW_INSTALL_DIR="${SW_LOCATION}"
			fi
		fi
	fi

	PHIGS_DIR="$SW_INSTALL_DIR"
	PHIGS_HOME_DIR="$SW_LOCATION"
	COMMON_DIR="/opt/graphics/common"

	##
	##  Take care of all of the newconfig shipped files via
	##  the newconfig_cp routine.
	##

	#PHIGS_RELNOTES_FILE="${PHIGS_HOME_DIR}PHIGS.3.0.ReleaseNotes"
	PHIGS_CHARSETS_FILE="${PHIGS_HOME_DIR}config/char_set_info"
	PHIGS_DEFAULTS_FILE="${PHIGS_HOME_DIR}config/defaults"

	#newconfig_cp $PHIGS_RELNOTES_FILE
	#STATUS="$?"
	#newconfig_msgs $STATUS

	newconfig_cp $PHIGS_CHARSETS_FILE
	STATUS="$?"
	newconfig_msgs $STATUS

	newconfig_cp $PHIGS_DEFAULTS_FILE
	STATUS="$?"
	newconfig_msgs $STATUS

	##
	##  Create all of the require symbolic links to fonts
	##

	link_and_add_IPD ()
	{
		LINK_TARGET=$1
		LINK_NAME=$2
		if [ -h $LINK_NAME ]
		then
			rm -f $LINK_NAME > /dev/null 2>&1
		fi
		ln -s $LINK_TARGET $LINK_NAME > /dev/null 2>&1

		##
		## Do not try to add the sym_link to the IPD unless
		## the target exists under the same product directory.
		##
		echo $LINK_TARGET | fgrep "$PHIGS_HOME_DIR" > /dev/null 2>&1
		STATUS="$?"

		if [ -f "${SW_ROOT_DIRECTORY}$LINK_TARGET" -a "$STATUS" = "0" ]
		then
			IPD_addfile $LINK_NAME
		fi
	}
	##
	## Now symbolically link the stroke fonts to the correct HP-PHIGS fonts.
	##

	JPN_FONTS_MISSING="no"

	set -- 4 -2 6 -4 8 -6 58 -8 1 1 2 2 
	while [ $# -gt 0 ]
	do
		COMMON_FONT_TARGET=$1
		PHIGS_FONT_LINK=$2
		shift
		shift
		for COMMON_FONT_DIR in font_info hproman usascii jisascii katakana kanji
		do
			if [ ${COMMON_FONT_DIR} = "kanji" ]
			then
				PHIGS_FONT_DIR="kanji.euc"
			else
				PHIGS_FONT_DIR=$COMMON_FONT_DIR
			fi

			##
			## If the file doesn't already exist in PHIGS, create the link to the
			## Commons fonts file and/or directory.
			##

			if [ ! -f ${PHIGS_DIR}char_sets/${PHIGS_FONT_DIR}/${PHIGS_FONT_LINK} ]
			then

				##
				## Check to see if the directory exists.  If not, create it.
				##
				if [ ! -d ${PHIGS_DIR}char_sets/${PHIGS_FONT_DIR} ]
				then
					mkdir -p  ${PHIGS_DIR}char_sets/${PHIGS_FONT_DIR} > /dev/null 2>&1
					chmod 555 ${PHIGS_DIR}char_sets/${PHIGS_FONT_DIR} > /dev/null 2>&1
					chgrp bin ${PHIGS_DIR}char_sets/${PHIGS_FONT_DIR} > /dev/null 2>&1
					chown bin ${PHIGS_DIR}char_sets/${PHIGS_FONT_DIR} > /dev/null 2>&1
				fi

				##
				## Make the symbolic links.  
				## The links are made regardless of whether the Common fonts exist or not.
				##

				##
				## font -8 only exists for font_info, usascii and hproman
				##
	
				if [ ${PHIGS_FONT_LINK} = "-8" ]
				then
					if [ ${PHIGS_FONT_DIR} = "usascii" \
					  -o ${PHIGS_FONT_DIR} = "hproman" \
					  -o ${PHIGS_FONT_DIR} = "font_info" ]
					then
						link_and_add_IPD \
							${COMMON_DIR}/stroke/${COMMON_FONT_DIR}/${COMMON_FONT_TARGET} \
							${PHIGS_DIR}char_sets/${PHIGS_FONT_DIR}/${PHIGS_FONT_LINK}
					fi
				else
					link_and_add_IPD \
						${COMMON_DIR}/stroke/${COMMON_FONT_DIR}/${COMMON_FONT_TARGET} \
						${PHIGS_DIR}char_sets/${PHIGS_FONT_DIR}/${PHIGS_FONT_LINK}

					if [ ! -f "${SW_ROOT_DIRECTORY}${COMMON_DIR}/stroke/kanji/${COMMON_FONT_TARGET}" ]
					then 
							JPN_FONTS_MISSING="yes"
					fi
				fi 
			fi
		done
	done

	##
	## Print message about missing Japanese fonts if appropriate
	##

	if [ ${JPN_FONTS_MISSING} = "yes" ]
	then
		echo "NOTE:    You have not installed one or more of the following"
		echo "         optional Asian-Graphics stroke font filesets, so some or all"
		echo "         of the kanji.euc stroke fonts will not be accessible "
		echo "         to HP-PHIGS:"
		echo ""
		echo "              Asian-Graphics.HLVTCFNT-JPN"
		echo "              Asian-Graphics.ROMANFNT-JPN"
		echo "              Asian-Graphics.SMPLXFNT-JPN"
		echo "              Asian-Graphics.STICKFNT-JPN"
		echo ""
	fi

	##
	##  Create the symbolic link for PHIGS libddnull.sl that points to
	##  the Common libddnull.sl
	##

	PHIGS_NULL_DIR="$PHIGS_DIR"
	PHIGS_NULL_LINK="${PHIGS_NULL_DIR}lib/libddnull.sl"
	COMMON_NULL_TARGET="${COMMON_DIR}/lib/libddnull.sl"

	if [ ! -h $PHIGS_NULL_LINK ]
	then
		 link_and_add_IPD $COMMON_NULL_TARGET $PHIGS_NULL_LINK
	fi

	##
	##  Create the transition links for 9.x binary compatibility.  If the
	##  old "/usr/lib/phigs" directory doesn't exist, create it.
	##

	USR_DIR="${SW_ROOT_DIRECTORY}usr/lib"
	USR_LINK_DIR="/usr/lib"
	PHIGS_TLINK_DIR="${USR_DIR}/phigs"
	X_APP_DIR="$USR_DIR/X11/app-defaults"
	NLS_C_DIR="${USR_DIR}/nls/C"
	NLS_AMER_DIR="${USR_DIR}/nls/american"
	NLS_NC_DIR="${USR_DIR}/nls/n-computer"

	if [ ! -d $PHIGS_TLINK_DIR ]
	then
		mkdir -p  $PHIGS_TLINK_DIR >/dev/null 2>&1
		chmod 555 $PHIGS_TLINK_DIR >/dev/null 2>&1
		chown bin $PHIGS_TLINK_DIR >/dev/null 2>&1
		chgrp bin $PHIGS_TLINK_DIR >/dev/null 2>&1
	fi

	link_and_add_IPD ${PHIGS_HOME_DIR}bin/cgmiui		${PHIGS_TLINK_DIR}/cgmiui
	link_and_add_IPD ${PHIGS_HOME_DIR}lib/libphigsXg.sl	${USR_DIR}/libphigsXg.sl
	link_and_add_IPD ${PHIGS_HOME_DIR}bin/xinitcolormap	${PHIGS_TLINK_DIR}/xinitcolormap
	link_and_add_IPD ${PHIGS_HOME_DIR}bin/xmodsharedcmap	${PHIGS_TLINK_DIR}/xmodsharedcmap
	link_and_add_IPD ${PHIGS_HOME_DIR}bin/xsharedcmap	${PHIGS_TLINK_DIR}/xsharedcmap
	link_and_add_IPD ${PHIGS_HOME_DIR}char_sets	        ${PHIGS_TLINK_DIR}/char_sets
	link_and_add_IPD ${PHIGS_HOME_DIR}config/char_set_info  ${USR_DIR}/phigs/char_sets/char_set_info
	link_and_add_IPD ${PHIGS_HOME_DIR}lbin/phg_daemon	${PHIGS_TLINK_DIR}/phg_daemon
	link_and_add_IPD ${PHIGS_HOME_DIR}config/defaults	${PHIGS_TLINK_DIR}/defaults
	link_and_add_IPD ${PHIGS_HOME_DIR}lib/libphigs.sl	${USR_DIR}/libphigs.sl
	link_and_add_IPD ${PHIGS_HOME_DIR}lib/libphigsXg.sl	${USR_DIR}/libphigsXg.sl

	if [ -d $X_APP_DIR ]
	then
		link_and_add_IPD	\
			${PHIGS_DIR}lib/X11/app-defaults/Phigswidget	\
			${X_APP_DIR}/Phigswidget
	fi

	if [ -d $NLS_C_DIR ]
	then
		link_and_add_IPD	\
			${PHIGS_DIR}lib/nls/msg/C/phigs.cat	\
			${NLS_C_DIR}/phigs.cat
	fi

	if [ -d $NLS_AMER_DIR ]
	then
		link_and_add_IPD	\
			${PHIGS_DIR}lib/nls/msg/en_US.roman8/phigs.cat	\
			${NLS_AMER_DIR}/phigs.cat
	fi

	exit $exitval

