#!/sbin/sh
#
# Copyright 1999 Sun Microsystems, Inc. All Rights Reserved
#

#
#  create_dispatch_table -- create the dispatch_table for interactive
#                           install. If virtualpkgs2 exists, we
#                           need to run solaris2 wizard. If virtualpkgs3
#                           exists, we need to run langcd wizard. 
#
#
LOG_FILE=disk0_install.log
A_VAR_SADM_WEBSTART=/a/var/sadm/webstart
A_VAR_SADM_SYSTEM_DATA=/a/var/sadm/system/data
DISPATCH=${A_VAR_SADM_WEBSTART}/dispatch_table
VIRTUAL_2_PKGS=${A_VAR_SADM_SYSTEM_DATA}/.virtualpkgs2
VIRTUAL_3_PKGS=${A_VAR_SADM_SYSTEM_DATA}/.virtualpkgs3

LOCALE_FILE=${A_VAR_SADM_SYSTEM_DATA}/locales_installed

PLATFORM=`uname -p`


#
# See if install created a locales_installed file and,
# if so, extract the installed locales
#

if [ -f ${LOCALE_FILE} ]
then
    LOCALES=`grep "^LOCALES=" ${LOCALE_FILE} 2>/dev/null | cut -d= -f2`
fi


if [ -d ${VIRTUAL_2_PKGS} -o -d ${VIRTUAL_3_PKGS} ]
then
  #
  # create /a/var/sadm/webstart directory
  #
  if [ ! -d ${A_VAR_SADM_WEBSTART} ]
  then
      mkdir -p ${A_VAR_SADM_WEBSTART} 2>&1
  fi
fi


#
# Delete dispatch_table if one exists
#

if [  -f ${DISPATCH} ]
then
    rm -f ${DISPATCH} 
fi


WNUM=1


#
# Determine if we need to run solaris2 wizard (install from Virtual CD 2)
#

if [ -d ${VIRTUAL_2_PKGS} ]
then
    if [ ${PLATFORM} = "i386" ]
    then
      echo "W1.CDName=Solaris 8 (IA) Software 2" >> ${DISPATCH}
      echo "W1.VOLID=sol_8_ia_2" >> ${DISPATCH}
    else
      echo "W1.CDName=Solaris 8 (SPARC) Software 2" >> ${DISPATCH}
      echo "W1.VOLID=sol_8_sparc_2" >> ${DISPATCH}
    fi

    if [ "X$LOCALES" != "X" ]
    then
    	echo "W1.LaunchCommand=installer -warp ,Summary -locales ${LOCALES}" >> ${DISPATCH}
    else
    	echo "W1.LaunchCommand=installer -warp ,Summary" >> ${DISPATCH}
    fi

  echo "W1.Product1.MiniRoot=NO" >> ${DISPATCH}
  #echo "W1.NO_SKIP=YES" >> ${DISPATCH}
  WNUM=2
#else
  #echo "create_dispatch_table: No virtualpkgs2" >> /tmp/$LOG_FILE
fi



#
# Determine if we need to run langcd wizard 
#

if [ -d ${VIRTUAL_3_PKGS} ]
then
    if [ ${PLATFORM} = "i386" ]
    then
      echo "W${WNUM}.CDName=Solaris 8 (IA) Localizations" >> ${DISPATCH}
      echo "W${WNUM}.VOLID=sol_8_lang_ia" >> ${DISPATCH}
    else
      echo "W${WNUM}.CDName=Solaris 8 (SPARC) Localizations" >> ${DISPATCH}
      echo "W${WNUM}.VOLID=sol_8_lang_sparc" >> ${DISPATCH}
    fi

    if [ "X$LOCALES" != "X" ]
    then
        echo "W${WNUM}.LaunchCommand=installer -warp Verify,Summary -locales ${LOCALES}" >> ${DISPATCH}
    else
        #
        # have lang cd packages to install without locales - this really 
        # should never happen...
        #
        #echo "create_dispatch_table: Have virtualpkgs3 but no locales" >> /tmp/$LOG_FILE
        echo "W${WNUM}.LaunchCommand=installer -warp Verify,Summary" >> ${DISPATCH}
    fi


    #
    # from the locales, determine the language/product names
    # Need to special case Taiwanese, the only locale that
    # has 4 letters and contains another locale
    #
    LOCALES=`echo ${LOCALES} |  sed 's/,/ /g' `
    for loc in ${LOCALES}
    do
       NEXTLOC=`echo ${loc} | cut -b1-2`
       if [ "X${NEXTLOC}" = "Xzh" ]
       then
         TW=`echo ${loc} | cut -b3-5`
         if [ "X${TW}" = "X_TW" ]
         then
           NEXTLOC="ZH_TW"
         fi
       fi
       echo $NEWLOCS | /usr/bin/egrep -s $NEXTLOC 
       if [ $? -ne 0 ]
       then
           NEWLOCS="${NEWLOCS} ${NEXTLOC}"
       fi
    done

    NEWLOCS=`echo ${NEWLOCS} | sort -u | sed 's/ZH_TW/zh_TW/g'`
   

    for newloc in ${NEWLOCS}
    do
      case "${newloc}" in
          fr) LANGS="French ${LANGS}" ;;
          de) LANGS="German ${LANGS}" ;;
          es) LANGS="Spanish ${LANGS}" ;;
          it) LANGS="Italian ${LANGS}" ;;
          sv) LANGS="Swedish ${LANGS}" ;;
          ko) LANGS="Korean ${LANGS}" ;;
          ja) LANGS="Japanese ${LANGS}" ;;
          zh) LANGS="Chinese ${LANGS}" ;;
          zh_TW) LANGS="Taiwanese ${LANGS}" ;;
      esac
    done

    #
    # add Product info for each language
    #
    PNUM=1
    for lang in ${LANGS}
    do
        echo "W${WNUM}.Product${PNUM}.Name=${lang}" >> ${DISPATCH}
        echo "W${WNUM}.Product${PNUM}.MiniRoot=NO" >> ${DISPATCH}
        echo "W${WNUM}.Product${PNUM}.PRODID=${lang}" >> ${DISPATCH}
        PNUM=`expr ${PNUM} + 1`
    done


#else
  #echo "create_dispatch_table: No virtualpkgs3" >> /tmp/$LOG_FILE
fi




