#!/bin/sh
#
# Install Script for UNIX Acrobat Exchange and Reader v. 7.0.0
#
# Copyright (c)1995-2005 Adobe Systems Incorporated
# All Rights Reserved
#
##########################################################################


setLangESP()
{
ST_LANG="ESP"
ST_LANG_SMALL="esp"
ST_READER_RPM_NAME="AdobeReader_esp"
ST_EXCHANGE_RPM_NAME="AdobeAcrobat_esp"
ST_COMMENT_WORD="Comentario"
ST_DESCRIPTION_WORD="Descripcin"
ST_COMMENT_RPM="Iniciar Adobe Reader 7.0"
ST_DES_RPM="Adobe Reader para Linux. Una aplicacin que puede ver e imprimir documentos PDF, y desplazarse por los mismos."
ST_DES_TAG01="Adobe Reader puede leer documentos con formato PDF."
ST_DES_TAG02="Adobe Reader tambin le permite buscar en archivos PDF,"
ST_DES_TAG03="buscar archivos PDF en Internet y participar en revisiones de documentos en colaboracin."
ST_DES_TAG04="Para obtener detalles, consulte www.adobe.com."
ST_THE_FILE="El archivo"
ST_FOR="for"
ST_YES="s"
ST_NO="no"
ST_OR="o"
ST_SMALL_Y="s"
ST_SMALL_N="n"
ST_CAPS_Y="S"
ST_CAPS_N="N"
ST_ACCEPT_CAPS="ACEPTAR"
ST_DECLINE_CAPS="RECHAZAR"
ST_ACCEPT="aceptar"
ST_DECLINE="rechazar"
ST_VERSION="versin"
ST_STATEMENT_ACCEPT_DECLINE="Escriba \\\"aceptar\\\" para acepar los trminos y condiciones del acuerdo de licencia; Escriba \\\"rechazar\\\" para salir. "
ST_RESTATEMENT_ACCEPT_DECLINE="Respuesta no vlida, se esperaba \\\"aceptar\\\" o \\\"rechazar\\\" ... desea intentarlo de nuevo?"
ST_ER_INVALID_RESP1="ERROR: respuesta no vlida, se esperaba"
ST_ER_INVALID_RESP2="ERROR: respuesta no vlida, intntelo de nuevo"
ST_ER_INVALID_RESP3="... desea intentarlo de nuevo?"
ST_ER_NO_LIC_FILE="ERROR: no se encuentra el archivo de licencia anulando"
ST_TO_ACCEPT="Para aceptar los trminos y condiciones de este acuerdo, introduzca"
ST_TO_DECLINE="Para rechazar los trminos y condiciones de este acuerdo, introduzca"
ST_REQ0101="Escriba"
ST_REQ0102="para aceptar los trminos y condiciones del acuerdo de licencia;"
ST_REQ0103="Escriba"
ST_REQ0104="para salir. "
ST_ER_LIC_NOT_ACCP="Acuerdo de licencia no aceptado anulando la instalacin"
ST_FREE_SPACE_INFO01="Esta instalacin necesita"
ST_FREE_SPACE_INFO02="MB de espacio libre en disco."
ST_DONE_WORD="Terminado"
ST_ER_INSTALLING01="ERROR al instalar"
ST_ER_INSTALLING02="nombre de producto no vlido"
ST_RES_INST_DIR="Escriba el directorio de instalacin para Adobe Reader"
ST_ER_SAME_FILE_NAME_AS_DIR="existe pero no es un directorio. Especifique una ubicacin diferente."
ST_DIR_INFO01="Directorio"
ST_DIR_INFO02="no existe."
ST_QUES_CREAT_DIR="Desea crearlo ahora? [s] "
ST_ER_EXIT="Saliendo de la instalacin..."
ST_ER_DIR="ERROR: no se puede crear el directorio"
ST_ER_WRITE="ERROR: no se puede escribir en el directorio"
ST_ER_NO_LIBCURL01="No se encuentra libcurl.so. Puede que parte de la funcionalidad de Adobe Reader est obstaculizada."
ST_ER_NO_LIBCURL02="Se recomienda instalar la versin de curl."
ST_ER_NO_LIBCURL03="o cualquier versin posterior a la versin."
ST_WARN_NO_LIBSSL01="ADVERTENCIA: la versin de libssl.so del equipo no es compatible con libssl.so.0.9.6."
ST_WARN_NO_LIBSSL02="Instale libssl.so.0.9.6."
ST_WARN_LD_LIB01="existe en el directorio"
ST_WARN_LD_LIB02="pero este directorio no est incluido en LD_LIBRARY_PATH."
ST_WARN_LD_LIB03="Incluya el directorio"
ST_WARN_LD_LIB04="en LD_LIBRARY_PATH"
ST_WARN_LD_LIB05="existe en el directorio"
ST_ER_NO_CONFIG="ERROR: no se encuentra ninguna configuracin... anulando"
ST_WARN_NO_CONFIG="ADVERTENCIA: la configuracin elegida no se ejecutar en la plataforma actual"
ST_QUE_CONT="Desea continuar la instalacin?"
ST_INFO_DEF_CONFIG1="Instalar la configuracin predeterminada"
ST_INFO_DEF_CONFIG2="Las siguientes configuraciones estn disponibles para la instalacin:"
ST_QUE_CONFIG="Escriba el nmero de configuracin que va a instalar: "
ST_EXIT_INFO="Salir de la instalacin de Acrobat"
ST_PLAT_INDEP_FILES="Instalando los archivos independientes de la plataforma... "
ST_PLAT_DEP_FILES="Instalando los archivos dependientes de la plataforma... "
ST_RPM_CAN_NOT_DEL="no se ha podido eliminar porque tiene un archivo o archivos adicionales que no se han instalado con rpm"
ST_WEL_ALK="Bienvenido a la instalacin del conjunto de idiomas asiticos."
ST_INFO_ALK01="Esta instalacin no funcionar si no tiene la"
ST_INFO_ALK02="versin 7.0 de Unix Adobe Reader instalada antes de esta instalacin."
ST_INFO_ALK03="Si an no tiene instalada la versin 7.0 de Adobe Reader en el"
ST_INFO_ALK04="sistema, instlela antes de instalar este conjunto de idiomas asiticos. "
ST_ER_ALK01="ERROR: el directorio debe ser una ruta absoluta"
ST_ER_ALK02="ERROR: el directorio"
ST_ER_ALK03="no existe."
ST_ER_ALK04="ERROR: el archivo de AcroVersion no existe."
ST_ER_ALK05="ERROR: versin de Acrobat incorrecta:"
ST_ER_ALK06="ERROR: no se ha encontrado la distribucin... anulando"
ST_IF_ALK07="Introduzca la ubicacin donde ha instalado Adobe Reader"
ST_INFO_ALK_CMPLT="Instalacin completada."
ST_WEL_HLK="Bienvenido a la instalacin de Extended Language Pack."
ST_INFO_HLK04="el sistema, deber instalarlo antes de instalar el Extended Language Pack."
ST_INFO_HLK05="Instalando archivos de Extended Language Pack..."
ST_WEL_CLK="Bienvenido a la instalacin de Central European Font Pack."
ST_INFO_CLK04="el sistema, deber instalarlo antes de instalar el Central European Font Pack."
ST_INFO_CLK05="Instalando archivos de Central European Language Pack... "
ST_ER_AR01="ERROR: no se puede determinar el directorio actual."
ST_ER_AR02="ERROR: no se encuentra el directorio de instalacin."
ST_ER_AR03="ERROR: no se encuentra"
ST_INFO_AR01="El SO denominado "
ST_INFO_AR02="no se encuentra actualmente instalado."
ST_INFO_AR03="Intente ejecutar en una plataforma instalada conectndola a su pantalla."
ST_INFO_AR04="Entre las plataformas instaladas se incluyen las siguientes:"
ST_INFO_AR05="no instalada para esta configuracin,"
ST_IBP_MISC_03="Mozilla"
ST_IBP_MISC_04="Firefox"
ST_IBP_MISC_05="Netscape"
ST_IBP_MISC_06="Salir"
ST_IBP_INFO_01="Esto instalar el plug-in del explorador para acroread."
ST_IBP_INFO_02="Realizar instalacin global"
ST_IBP_INFO_03="Realizar instalacin especfica de usuario"
ST_IBP_INFO_04="Introduzca su eleccin"
ST_IBP_INFO_05="Desea instalar otro explorador?"
ST_IBP_INFO_06="Escriba el directorio de instalacin para Adobe Reader 7.0"
ST_IBP_INFO_07="Escriba el directorio de instalacin del explorador"
ST_IBP_INFO_08="Parece que el plug-in ya se ha instalado. Seguro que desea sobrescribirlo?"
ST_IBP_INFO_09="Instalacin cancelada."
ST_IBP_INFO_10="Instalacin correcta."
ST_IBP_INFO_11="Esto activar el plug-in para Mozilla, Firefox y Netscape."
ST_IBP_INFO_12="Si tiene algn problema para que la instalacin funcione en el explorador, copie el siguiente archivo en la carpeta plugin del explorador:"
ST_IBP_INFO_13="Ruta de Acroread especificada"
ST_IBP_INFO_14="Pulse <Intro> para continuar"
ST_IBP_INFO_15="En caso de dificultades, consulte la documentacin proporcionada junto con el explorador para la adicin de nuevos plug-ins."
ST_IBP_INFO_16="Instalacin del plug-in en"
ST_IBP_INFO_17="Desea realizar una instalacin automtica?"
ST_IBP_INFO_18="Instalacin automtica finalizada."
ST_IBP_INFO_19="Desea realizar una instalacin manual?"
ST_IBP_INFO_20="Desea instalar el plug-in del explorador?"
ST_IBP_INFO_21="Se omiti la instalacin del plug-in del explorador."
ST_IBP_INFO_22_1="Ejecutar"
ST_IBP_INFO_22_2="para instalar el plug-in del explorador."
ST_IBP_INFO_23="se ha agregado."
ST_IBP_ERR_01="No se ha encontrado el archivo del plug-in del explorador"
ST_IBP_ERR_02="No se ha encontrado la carpeta de plug-ins del explorador"
ST_IBP_ERR_03="No se pudo encontrar la carpeta del explorador"
ST_IBP_ERR_04="No se ha podido eliminar la versin anterior del plug-in en"
ST_IBP_ERR_05_1="No se ha podido copiar el archivo del plug-in"
ST_IBP_ERR_05_2="a"
ST_IBP_ERR_06="No se ha podido crear el directorio"
ST_IBP_ERR_07="No se pudo encontrar la secuencia de comandos de instalacin del plug-in del explorador."
ST_IBP_ERR_08="ya existe como un archivo especial y no se puede sobrescribir."
ST_IBP_ERR_09="No se puede consultar la variable HOME desde el entorno. No se puede encontrar el directorio principal."
ST_IBP_ERR_10="No se pudo encontrar la carpeta de instalacin"
ST_SEP_INFO_01="Escriba el directorio de instalacin para Adobe Reader 7.0"
ST_SEP_INFO_02="ERROR INTERNO..... No coincide el nombre de SO."
ST_SEP_INFO_03="No se pueden encontrar los archivos adecuados en la ruta de instalacin."
ST_SEP_INFO_04="Restableciendo contextos anteriores"
ST_SEP_INFO_05="Configurando nuevos contextos para archivos de biblioteca"
ST_SEP_INFO_06="Esto intentar actualizar los archivos de biblioteca para que sean compatibles con SELinux."
ST_SEP_INFO_07="No se pudo encontrar la carpeta de instalacin."
ST_SEP_INFO_08="Ha finalizado la configuracin de contextos. Puede comprobar el registro en"
ST_SEP_INFO_09="Error del comando"
ST_SEP_INFO_10="La revisin podra no haberse completado correctamente. Puede comprobar el registro en"
ST_IOP_ERR1="El plug-in del PDF de OpenOffice no se pudo registrar. Lea las instrucciones en "
ST_IOP_ERR2="para obtener informacin sobre la instalacin manual."
ST_IOP_ERR3="OpenOffice >= 1.9 es necesario para que el plug-in del PDF de OpenOffice se ejecute correctamente. Omitir el registro del plug-in del PDF."
ST_IOP_ERR4="No se ha encontrado el archivo soffice binario de OpenOffice en el directorio especificado."
ST_IOP_INFO_01="Especifique el directorio en el que se instal OpenOffice: "
ST_IOP_INFO_02="Desea instalar el plug-in de OpenOffice?"
ST_IAP_ERR1="No se pudo registrar el plug-in del PDF de Adobe. Siga las instrucciones de "
ST_IAP_INFO_01="Desea instalar el plug-in del PDF de Adobe?"
ST_IFE_INFO_01="Desea instalar la extensin firefox?"
ST_IFE_INFO_02="Especifique la ruta de acceso al archivo ejecutable Firefox: "
ST_IFE_ERR_01="No se encontr el archivo ejecutable Firefox o no tiene permisos ejecutables."
ST_IDI_INFO_01="Desea instalar Distiller?"
ST_MIME_INFO_01="Inicie la sesin de nuevo para que se apliquen los cambios a los iconos y tipos MIME."
true
}

setLangESP

echoawk ()
{
  echo $* | awk '{ printf "%s", $0 }'
}

echon ()
{
  echo -n "$*"
}

echoc ()
{
  echo "${*}\c"
}


readlink()
{
    if [ -x /usr/bin/test ]; then
        TestCmd=/usr/bin/test
    else
        TestCmd=test
    fi

    if [ "`$TestCmd -e . 2>/dev/null; echo $?`" = "0" ]; then
        TestCmdOption="-e"
    else
        TestCmdOption="-f"
    fi

    OLDPWD="`pwd`"
    lfile="$1"

    while $TestCmd -h "$lfile" -a $TestCmdOption "$lfile" ; do
        CWD="`dirname "$lfile"`"
        lfile="`basename "$lfile"`"
        cd $CWD
        lfile="`ls -l "$lfile"|sed 's/^.*-> *\(.*\) *$/\1/'`"
    done

    if $TestCmd $TestCmdOption "$lfile" ; then
        CWD="`dirname "$lfile"`"
        lfile="`basename "$lfile"`"
        cd $CWD
        echo `pwd`/$lfile
        cd "$OLDPWD"
        return 0
    fi

    cd "$OLDPWD"
    return 1
}



##########################################################################

yesno()
{
  msg="$1"
  def="$2"
  while true ; do
    echo " "
    $echonl "$msg"
    read answer
    if [ "$answer" ] ; then
      case "$answer" in
        y|Y|yes|YES)
          return 0
          ;;
        n|N|no|NO)
          return 1
          ;;
        *)
          echo " "
          echo "$ST_ER_INVALID_RESP1 \"$ST_YES\" $ST_OR \"$ST_NO\"."
          continue
          ;;
      esac
    else
      return $def
    fi
  done
}

TypeCheck() 
{
  h=`type $1 2> /dev/null`
  case " $h " in
  *' '/*/$1' '*)
    return 0
    ;;
  *)
    return 1
    ;;
  esac
}


PrintRequiredFree()
{
  total=0

  for i in "$@" ; do
    if [ "$i" -a -f "$i" ] ; then

        if [ `uname -s` = "Linux" ] ; then
          size=`ls -lLn "$i" | ( read perm links owner group size date ; echo $size )`
        else
          size=`ls -lLon "$i" | ( read perm links owner size date ; echo $size )`
        fi

      if [ "$size" ] ; then
        total=`expr $total + $size`
      fi
    fi
  done

  megs=`expr $total / 1048576 + 1`

  echo " "
  echo "$ST_FREE_SPACE_INFO01 ${megs} $ST_FREE_SPACE_INFO02"
}

ExtractFiles ()
{

   prev_directory="`pwd 2> /dev/null`"
   cd "$1" 
   if [ `uname -s` = "Linux" ] ; then
 	tar --no-same-owner -xpf "$2"  
   else
	tar xpfo "$2"
   fi

   cd "$prev_directory"

}


InstallFiles ()
{
  msg="$1"
  install="$2"
  shift
  shift

  echo " "

  for i in "$@" ; do
    if [ "$i" ] ; then
      if [ "$msg" ] ; then
        $echonl "$msg"
        msg=""
      fi
      ExtractFiles "$install" "$i"
    fi
  done

  if [ -z "$msg" ] ; then
    echo "$ST_DONE_WORD"
  fi
}


ExpandDirPath ()
{
    var=`echo $@ |  cut -d "\"" -f 2`

    case "$var" in
    ~*)
      if [ -f /bin/csh -a -x /bin/csh ] ; then
        tmp_var=`/bin/csh -c "echo $var" 2>/dev/null`
        if [ $? -eq 0 ]; then
            var="$tmp_var"
        fi
      fi
      ;;
    ../*|./*|..|.)
      var="`pwd`/${var}"
      ;;
    /*)
    ;;
    *)
        var="`pwd`/${var}"
      ;;
	esac
    eval var=\"${var}\"
    echo $var
}


GetInstallDirectory ()
{
  var=$1
  
  defdir="/usr/local/Adobe/Acrobat7.0"
  case "$OSname" in
    SunOS)
      case "$OSrelease" in
        4.1.3*|4.1.4*|4.1C) defdir="/usr/Adobe/Acrobat7.0" ;;
        5.*) defdir="/opt/Adobe/Acrobat7.0" ;;
      esac
      ;;
    HP-UX)
      case "$OSrelease" in
        *.09.*) defdir="/usr/Adobe/Acrobat7.0" ;;
        *.10.*) defdir="/opt/Adobe/Acrobat7.0" ;;
        *) defdir="/Adobe/Acrobat7.0" ;;
      esac
      ;;
    AIX)
      defdir="/usr/lpp/Adobe/Acrobat7.0"
      ;;
  esac

  while [ -z "$InstallDir" ] ; do

    InstallDir="$defdir"

    echo " "
    $echonl "$ST_RES_INST_DIR ${Version} [${InstallDir}] "
    read answer
    case "$answer" in
      "")
        ;;
      *)
        InstallDir="$answer"
        ;;
    esac

    InstallDir="`ExpandDirPath "$InstallDir"`"

	if [ -f "$InstallDir" ] ; then
      
        echo " "
        echo "\"$InstallDir\" $ST_ER_SAME_FILE_NAME_AS_DIR "
        InstallDir=""
        continue;
      
    fi

    if [ ! -d "$InstallDir" ] ; then
      echo " "
      echo "$ST_DIR_INFO01 \"$InstallDir\" $ST_DIR_INFO02"
      $echonl "$ST_QUES_CREAT_DIR "
      read answer

      if [ "$answer" ] ; then
          case "$answer" in
             "$ST_SMALL_Y" | "$ST_CAPS_Y" )
               mkdir -p "$InstallDir"
             ;;
             "$ST_SMALL_N" | "$ST_CAPS_N" )
               echo "$ST_ER_EXIT"
               exit 0
             ;;
          esac
      else
         mkdir -p "$InstallDir"
      fi

      if [ ! -d "$InstallDir" ] ; then
        echo " "
        echo "$ST_ER_DIR \"$InstallDir\"."
        InstallDir=""
        continue;
      fi
    fi
 
    export "InstallDir"


    if ( echo foo > "$InstallDir"/AcroWriteTest ) 2> /dev/null ; then
      rm -f "$InstallDir"/AcroWriteTest
      break
    else
      echo " "
      echo "$ST_ER_WRITE \"$InstallDir\"."
      InstallDir=""
      continue
    fi
  done

 

  ReadInstallDir="$InstallDir"
}


check_file_in_named_path()
{
     if [ -x "$2/$1" ] ; then
        return 1
     fi

     return 0
}


check_file_in_path()
{
    OLD_IFS=$IFS
    IFS=":"

    if [ -n "$PATH" ] ; then
        for i in $PATH; do
            if [ -d "$i" ] ; then
                check_file_in_named_path "$1" "$i"
                if [ $? -eq 1 ]; then
                    IFS=$OLD_IFS
                    echo "$i/$1"
                    return 1
                fi
           fi
        done
     fi

     IFS=$OLD_IFS
     return 0
}


#Make Soft Links To gnome-speech libraries
MakeLibGnomeSpeechLinks()
{
    InstallDir="$1/Reader"

    TESTSPEECHEXEC=`check_file_in_path "test-speech"`
    if [ $? -ne 0 ]
    then
        check_file_in_path "ldd" >/dev/null
        if [ $? -ne 0 ]
        then
            check_file_in_path "sed" >/dev/null
            if [ $? -ne 0 ]
            then
                rm -f "$InstallDir"/intellinux/lib/libORBit-2.so 2>/dev/null
                rm -f "$InstallDir"/intellinux/lib/libbonobo-2.so 2>/dev/null
                rm -f "$InstallDir"/intellinux/lib/libbonobo-activation.so 2>/dev/null
                rm -f "$InstallDir"/intellinux/lib/libgnomespeech.so 2>/dev/null
                TrimCmd="sed -e 's/^[ \t]*\([^ \t]\)\(.*\)\([^ \t]\)[ \t]*$/\1\2\3/g'"
                LIB_ORBit2="`ldd $TESTSPEECHEXEC 2>/dev/null | grep -i libORBit-2.* | cut -d '>' -f2 | cut -d '(' -f 1 | sh -c "$TrimCmd" `"
                LIB_BONOBO="`ldd $TESTSPEECHEXEC 2>/dev/null | grep -i bonobo-2.* | cut -d '>' -f2 | cut -d '(' -f 1 | sh -c "$TrimCmd" `"
                LIB_BONOBOACTIVATION="`ldd $TESTSPEECHEXEC 2>/dev/null | grep -i bonobo-activation.* | cut -d '>' -f2 | cut -d '(' -f 1 | sh -c "$TrimCmd" `"
                LIB_GNOMESPEECH="`ldd $TESTSPEECHEXEC 2>/dev/null | grep -i libgnomespeech.* | cut -d '>' -f2 | cut -d '(' -f 1 | sh -c "$TrimCmd" `"
                if [ -f "$LIB_ORBit2" -a -f "$LIB_BONOBO" -a -f "$LIB_BONOBOACTIVATION" -a -f "$LIB_GNOMESPEECH" ]
                then
                    ln -s "$LIB_ORBit2" "$InstallDir/intellinux/lib/libORBit-2.so"
                    ln -s "$LIB_BONOBO" "$InstallDir/intellinux/lib/libbonobo-2.so"
                    ln -s "$LIB_BONOBOACTIVATION" "$InstallDir/intellinux/lib/libbonobo-activation.so"
                    ln -s "$LIB_GNOMESPEECH" "$InstallDir/intellinux/lib/libgnomespeech.so"
                fi
            fi
        fi
    fi
}


MakeLibLDAPLinks()
{

InstallDir="$1/Reader"

if [ ! -e /usr/lib/libldap.so ]
then
	rm -f "$InstallDir"/intellinux/lib/libldap.so 2>/dev/null

	LIB_LDAP=`ls -tr /usr/lib/libldap.so*  2>/dev/null | tail -n 1`

	if [ "$LIB_LDAP" = "" ] 
	then
		LIB_LDAP=`ls -tr /usr/lib/libldap* 2>/dev/null | grep -v libldap_r | grep -v libldapcpp | grep '\.so' | tail -n 1`
	fi

	if [ "$LIB_LDAP" != "" ] 
	then
		ln -s $LIB_LDAP "$InstallDir"/intellinux/lib/libldap.so
	fi
fi

if [ ! -e /usr/lib/liblber.so ]
then
	rm -f "$InstallDir"/intellinux/lib/liblber.so 2>/dev/null

	LIB_LBER=`ls -tr /usr/lib/liblber.so* 2>/dev/null | tail -n 1`

	if [ "$LIB_LBER" = "" ] 
	then
		LIB_LBER=`ls -tr /usr/lib/liblber* 2>/dev/null | grep -v liblber_r | grep '\.so' | tail -n 1`
	fi

	if [ "$LIB_LBER" != "" ] 
	then
		ln -s $LIB_LBER "$InstallDir"/intellinux/lib/liblber.so
	fi
fi
}


InstallBrowserPlugin()
{
    echo ""
    while :
      do
      echo -n "$ST_IBP_INFO_20 [$ST_SMALL_Y/$ST_SMALL_N] "
      read OVERWRITE_CHOICE
      
      if [ "$OVERWRITE_CHOICE" = "$ST_SMALL_Y" ] || [ "$OVERWRITE_CHOICE" = "$ST_CAPS_Y" ] || [ -z "$OVERWRITE_CHOICE" ]
	  then
	  break
      elif [ "$OVERWRITE_CHOICE" = "$ST_SMALL_N" ] || [ "$OVERWRITE_CHOICE" = "$ST_CAPS_N" ]
	  then
	  return 0
	  break
      fi
    done

    if [ -f "$ReadInstallDir/Browser/install_browser_plugin" ]
	then
	$ReadInstallDir/Browser/install_browser_plugin "$ReadInstallDir"
    else
	echo "$ST_IBP_ERR_07"
	exit 1
    fi
}


UpdateOldGnomeFile()
{
    awk '
BEGIN   { state = 0; }

/^application\/pdf$/    {
        state = 1;
        print $0;
        next;
    }

/^[^ \t].*/ {
        state = 0;
        print $0;
        next;
    }

/^[ \t][ \t]*default_application_id=/ && (state == 1) {
        print gensub(/(^[ \t][ \t]*default_application_id=).*$/, "\\1acroread", "g");
        next;
    }

/.*/    { print $0 }' "$1" > /tmp/acroread.tmp 2>/dev/null

    if [ $? -eq 0 ]; then
        mv -f /tmp/acroread.tmp "$1" 2>/dev/null || rm -f /tmp/acroread.tmp 2>/dev/null
    fi
}


ReadKDEConfigFile()
{
    awk '
BEGIN     { state = 0; MaxPreference = 0; MaxIndex = 0; }

/^[ \t]*\[([^ ]*)[ \t]*-[ \t]*([0-9][0-9]*)[ \t]*\][ \t]*$/  {
                                        app_type = gensub(/^[ \t]*\[([^ ]*)[ \t]*-[ \t]*([0-9][0-9]*)[ \t]*\][ \t]*$/, "\\1", "g");
                                        if ( app_type == "application/pdf" )
                                        {
                                            state = 1;
                                            app_index = gensub(/\[(.*)[ \t]*-[ \t]*([0-9][0-9]*)\]$/, "\\2", "g");
                                            if ( MaxIndex < app_index )
                                                MaxIndex = app_index;
                                        }
                                        else
                                            state = 0;
                                }

/^[ \t]*Preference[ \t]*=[ \t]*[0-9][0-9]*[ \t]*$/ {
                                        if (state == 1) {
                                           app_pref = gensub(/^[ \t]*Preference=[ \t]*([0-9][0-9]*)[ \t]*$/, "\\1", "g");
                                           if ( MaxPreference < app_pref )
                                                MaxPreference = app_pref;
                                        }
                                     }
/.*/      { print $0 }

END       { printf("\n[application/pdf - %d]\nAllowAsDefault=true\nApplication=AdobeReader.desktop\nGenericServiceType=Application\nPreference=%d\nServiceType=application/pdf\n", MaxIndex + 1, MaxPreference + 1);}' "$1" > /tmp/acroread.tmp 2>/dev/null

    if [ $? -eq 0 ]; then
        mv -f /tmp/acroread.tmp "$1" 2>/dev/null || rm -f /tmp/acroread.tmp 2>/dev/null
    fi
}


UpdateIcon()
{
    if [ -n "$1" -a -n "$2" ]; then
        rm -f "$2" 2>/dev/null
        ln -s "$1" "$2" 2>/dev/null
    fi
}


# $1 => Directory where Adobe Acrobat is installed

UpdateDefaultIcons()
{
    InstallDir="$1"
    IconDir="$GNOME_BASE_DIR/share/icons"

    if [ -z "$InstallDir" ]; then
        exit 1
    fi


    for IconSize in 16x16 20x20 24x24 32x32 36x36 48x48 64x64 96x96 128x128 192x192; do
        for gnomeDir in "$GNOME_BASE_DIR/share/icons/Bluecurve/$IconSize/mimetypes" "$GNOME_BASE_DIR/share/icons/hicolor/$IconSize/apps" "$GNOME_BASE_DIR/share/icons/gnome/$IconSize/mimetypes" ; do
            if [ -d "$gnomeDir" ]; then
                UpdateIcon "$InstallDir/Resource/Icons/$IconSize/AdobeReader.png" "$gnomeDir/gnome-mime-application-pdf.png" 2>/dev/null
                UpdateIcon "$InstallDir/Resource/Icons/$IconSize/vnd.fdf.png" "$gnomeDir/gnome-mime-application-vnd.fdf.png" 2>/dev/null
                UpdateIcon "$InstallDir/Resource/Icons/$IconSize/vnd.adobe.pdx.png" "$gnomeDir/gnome-mime-application-vnd.adobe.pdx.png" 2>/dev/null
                UpdateIcon "$InstallDir/Resource/Icons/$IconSize/vnd.adobe.xdp+xml.png" "$gnomeDir/gnome-mime-application-vnd.adobe.xdp+xml.png" 2>/dev/null
                UpdateIcon "$InstallDir/Resource/Icons/$IconSize/vnd.adobe.xfdf.png" "$gnomeDir/gnome-mime-application-vnd.adobe.xfdf.png" 2>/dev/null
            fi
        done

        for kdeDir in "$KDE_BASE_DIR/share/icons/Bluecurve/$IconSize/mimetypes" "$KDE_BASE_DIR/share/icons/default.kde/$IconSize/mimetypes" "$KDE_BASE_DIR/share/icons/hicolor/$IconSize/apps" ; do
            if [ -d "$kdeDir" ]; then
                UpdateIcon "$InstallDir/Resource/Icons/$IconSize/AdobeReader.png" "$kdeDir/pdf.png" 2>/dev/null
                UpdateIcon "$InstallDir/Resource/Icons/$IconSize/vnd.fdf.png" "$kdeDir/vnd.fdf.png" 2>/dev/null
                UpdateIcon "$InstallDir/Resource/Icons/$IconSize/vnd.adobe.pdx.png" "$kdeDir/vnd.adobe.pdx.png" 2>/dev/null
                UpdateIcon "$InstallDir/Resource/Icons/$IconSize/vnd.adobe.xdp+xml.png" "$kdeDir/vnd.adobe.xdp+xml.png" 2>/dev/null
                UpdateIcon "$InstallDir/Resource/Icons/$IconSize/vnd.adobe.xfdf.png" "$kdeDir/vnd.adobe.xfdf.png" 2>/dev/null
            fi
        done
done
}


UpdateConfigurationFiles()
{
    GNOME_CONFIG_FILE="$GNOME_BASE_DIR/share/applications/defaults.list"
    GNOME_OLD_CONFIG_FILE="$GNOME_BASE_DIR/share/mime-info/gnome-vfs.keys"
    KDE_CONFIG_FILE="$KDE_BASE_DIR/share/config/profilerc"

    if [ -f "$GNOME_CONFIG_FILE" ]; then
        ( grep -v "^application\/pdf=." < "$GNOME_CONFIG_FILE" ; echo 'application/pdf=AdobeReader.desktop' ) > /tmp/acroread.tmp 2>/dev/null
        mv -f /tmp/acroread.tmp "$GNOME_CONFIG_FILE" 2>/dev/null || rm -f /tmp/acroread.tmp 2>/dev/null
    else
        if [ -f "$GNOME_OLD_CONFIG_FILE" ]; then
            UpdateOldGnomeFile  "$GNOME_OLD_CONFIG_FILE"
        fi
    fi

    if [ -f "$KDE_CONFIG_FILE" ]; then
        ReadKDEConfigFile "$KDE_CONFIG_FILE"
    fi

    rm -f /tmp/acroread.tmp 2>/dev/null
}


InstallReader()
{
  ReadConfig="$1"
  ReadPlatformTar="$2"
  SearchPlatformTar="$3"
  CustomPlatformTar="$4"

  PrintRequiredFree "$ReadTar" "$SearchTar" "$CustomTar" \
    "$ReadPlatformTar" "$SearchPlatformTar" "$CustomPlatformTar"


  if [ -z "$ReadInstallDir" ] ; then
    GetInstallDirectory
    SilentMode="No"
  else
    ReadInstallDir=`ExpandDirPath "$ReadInstallDir"`
    SilentMode="Yes"

    if [ -f "$ReadInstallDir" ]; then
        echo "\"$ReadInstallDir\" $ST_ER_SAME_FILE_NAME_AS_DIR "
        exit 1
    fi

    mkdir -p "$ReadInstallDir" 2>/dev/null

    if [ $? -ne 0 ]; then
        echo "$ST_ER_DIR \"$ReadInstallDir\"."
        exit 1
    fi

    touch "$ReadInstallDir"/AcroWriteTest 2>/dev/null 

    if [ $? -eq 0 ]; then
        rm -f "$ReadInstallDir"/AcroWriteTest 2>/dev/null
    else
        echo "$ST_ER_WRITE \"$ReadInstallDir\"."
        exit 1
    fi
  fi

  echo $ReadInstallDir
  InstallFiles "$ST_PLAT_INDEP_FILES" \
    "$ReadInstallDir" "$ReadTar" "$SearchTar" "$CustomTar"
  InstallFiles "$ST_PLAT_DEP_FILES" \
    "$ReadInstallDir" \
    "$ReadPlatformTar" "$SearchPlatformTar" "$CustomPlatformTar"

  if [ `uname -s` = "Linux" ] ; then
    MakeLibLDAPLinks "$ReadInstallDir"
    MakeLibGnomeSpeechLinks "$ReadInstallDir"
  fi 

  if [ "$SilentMode" = "No" ]; then
    InstallBrowserPlugin "$ReadInstallDir"
  else
    echo ""
    echo "$ST_IBP_INFO_21"
    echo "$ST_IBP_INFO_22_1" \"$ReadInstallDir/Browser/install_browser_plugin\" "$ST_IBP_INFO_22_2"
  fi

  rm -f /usr/bin/acroread 2>/dev/null
  ln -s "$ReadInstallDir"/bin/acroread /usr/bin/acroread 2>/dev/null

  rm -f /usr/share/applications/AdobeReader.desktop 2>/dev/null
  ln -s "$ReadInstallDir"/Resource/Support/AdobeReader_GNOME.desktop /usr/share/applications/AdobeReader.desktop 2>/dev/null

  rm -f /usr/share/pixmaps/AdobeReader.desktop 2>/dev/null
  ln -s "$ReadInstallDir"/Resource/Icons/AdobeReader.png /usr/share/pixmaps/AdobeReader.png 2>/dev/null

  if [ "`uname -s`" = "Linux" ]; then
      check_file_in_path kde-config >/dev/null

      if [ $? -ne 0 ]; then
        KDE_BASE_DIR="`kde-config --prefix`"
      elif [ -x /opt/kde3/bin/kde-config ]; then
        KDE_BASE_DIR="/opt/kde3"
      elif [ -x /opt/kde/bin/kde-config ]; then
        KDE_BASE_DIR="/opt/kde"
      else
        KDE_BASE_DIR="/usr"
      fi

      GNOME_BASE_DIR=`check_file_in_path gnome-open`

      if [ $? -ne 0 ]; then
        GNOME_BASE_DIR="`dirname "$GNOME_BASE_DIR"`"
        GNOME_BASE_DIR="`dirname "$GNOME_BASE_DIR"`"
      elif [ -x /opt/gnome/bin/gnome-open ]; then
        GNOME_BASE_DIR="/opt/gnome"
      else
        GNOME_BASE_DIR="/usr"
      fi

      UpdateDefaultIcons "$ReadInstallDir"
      UpdateConfigurationFiles

      if [ -d "$GNOME_BASE_DIR/share/mime/packages" ]; then
          UpdateIcon "$ReadInstallDir/Resource/Support/AdobeReader.xml" "$GNOME_BASE_DIR/share/mime/packages/AdobeReader.xml" 
      fi

      if [ -d "$KDE_BASE_DIR/share/mimelnk/application" ]; then
          UpdateIcon "$ReadInstallDir/Resource/Support/vnd.fdf.desktop" "$KDE_BASE_DIR/share/mimelnk/application/vnd.fdf.desktop"
          UpdateIcon "$ReadInstallDir/Resource/Support/vnd.adobe.pdx.desktop" "$KDE_BASE_DIR/share/mimelnk/application/vnd.adobe.pdx.desktop"
          UpdateIcon "$ReadInstallDir/Resource/Support/vnd.adobe.xdp+xml.desktop" "$KDE_BASE_DIR/share/mimelnk/application/vnd.adobe.xdp+xml.desktop"
          UpdateIcon "$ReadInstallDir/Resource/Support/vnd.adobe.xfdf.desktop" "$KDE_BASE_DIR/share/mimelnk/application/vnd.adobe.xfdf.desktop"
      fi

      OLD_IFS="$IFS"
      IFS=':'

      for idir in $PATH; do
        if [ -x "${idir}"/update-mime-database ]; then
            "${idir}"/update-mime-database "$GNOME_BASE_DIR/share/mime" >/dev/null 2>&1
        fi

        if [ -x "${idir}"/update-desktop-database ]; then
            "${idir}"/update-desktop-database >/dev/null 2>&1
        fi
      done

      IFS="$OLD_IFS"
      OLD_IFS=""
  fi

  if [ "`id 2>/dev/null| cut -d= -f2| cut -d'(' -f1`" = "0" ]; then
    echo "$ST_MIME_INFO_01"
  fi

  ReadTar=""
  SearchTar=""
  CustomTar=""
}


ShowUsage()
{
	echo "Usage : $0 [--install_path=dir]"
}


##############################################################

#
# Initialization:
#

umask 022
ReadInstallDir=""

case $# in
    "1")    if [ "`echo $1 | cut -d= -f1`" = "--install_path" ]; then
                ReadInstallDir="`echo $1 | cut -d= -f2-`"
                if [ "$ReadInstallDir" = "" ]; then
                    ShowUsage "$@"
                    exit 1
                fi
            else
                ShowUsage "$@"
                exit 1
            fi;;

    "0")    ;;

    "*")    ShowUsage "$@"
        	exit 1;;
esac


ScriptName=`basename "$0"`
CurrentDirectory=`pwd`
eval CurrentDirectory=\"${CurrentDirectory}\"

ScriptDirectory=`dirname "$0"`
eval ScriptDirectory=\"${ScriptDirectory}\"

AcroSerNum=""
AcroCompName=""
case "${ScriptDirectory}" in
  /*) ;;
  .) ScriptDirectory="$CurrentDirectory" ;;
  *) ScriptDirectory="$CurrentDirectory"/"$ScriptDirectory" ;;
esac

 TypeCheck uname

  if [ $? -eq 0 ] ; then
    OSname=`uname -s`
    if [ "$OSname" = "AIX" ] ; then
      OSrelease=`uname -a | ( read name host minor major foo ; echo $major.$minor )`
    else
      OSrelease=`uname -r`
    fi
  else
    OSname=unknown
    OSrelease=unknown
  fi



if [ `echo "x\c"` = "x" ] ; then
  echonl=echoc
else
  echonl=echon
fi

Version=7.0.5

#
# Get the filenames:
#

for i in "${ScriptDirectory}"/* "${ScriptDirectory}"/../COMMON/* "${ScriptDirectory}"/../common/*; do
  if [ -f "$i" ] ; then
    case $i in
      */common.tar*|*/COMMON.TAR*)
        ReadTar="$i"
        ;;
      */search.tar*|*/SEARCH.TAR*)
        SearchTar="$i"
        ;;
      */custom.tar*|*/CUSTOM.TAR*)
        CustomTar="$i"
        ;;
      */solrdr.tar*|*/SSOLR.TAR*)
        ReadSparcSolarisTar="$i"
        ;;
      */hpuxrdr.tar*|*/HPUXRDR.TAR*)
        ReadHppaHpuxTar="$i"
        ;;
      */aixrdr.tar*|*/AIXRDR.TAR*)
        ReadRS6000AIXTar="$i"
        ;;
      */ilinxr.tar*|*/ILINXR.TAR*)
        ReadIntelLinuxTar="$i"
        ;;
      */ilinxc.tar*|*/ILINXC.TAR*)
        CustomIntelLinuxTar="$i"
        ;;
    esac
  fi
done


#
# Validate the configurations:
#

NumConfigs=0

if [ "$ReadTar" ] ; then
  if [ "$ReadSparcSolarisTar" ] ; then
    NumConfigs=`expr $NumConfigs + 1`
    ReadSparcSolarisNum=$NumConfigs
  fi
  if [ "$ReadHppaHpuxTar" ] ; then
    NumConfigs=`expr $NumConfigs + 1`
    ReadHppaHpuxNum=$NumConfigs
  fi
  if [ "$ReadRS6000AIXTar" ] ; then
    NumConfigs=`expr $NumConfigs + 1`
    ReadRS6000AIXNum=$NumConfigs
  fi
  if [ "$ReadIntelLinuxTar" ] ; then
    NumConfigs=`expr $NumConfigs + 1`
    ReadIntelLinuxNum=$NumConfigs
  fi
fi
if [ "$NumConfigs" = "0" ] ; then
  echo " "
  echo "$ST_ER_NO_CONFIG"
  echo " "
  exit 1
elif [ "$NumConfigs" = "1" ] ; then
  SingleConfig=true
fi

NumConfigs=`expr $NumConfigs + 1`
ExitNum=$NumConfigs


#
# Check if there is a configuration supported by this OS.
#

case "$OSname" in
  SunOS)
    case "$OSrelease" in
      4.1.3*|4.1.4*|4.1C)
        ReadDefaultNum="$ReadSparcSunNum"
        DefaultName="SPARC/SunOS 4.1.3 and later"
        ;;
      5.1|5.1.*|5.2|5.2.*)
        ;;
      5.*)
        MachArch=`uname -p`
        case "$MachArch" in
          sparc)
            ReadDefaultNum="$ReadSparcSolarisNum"
            DefaultName="SPARC/Solaris 2.x"
            ;;
          esac
        ;;
    esac
    ;;
  HP-UX)
    case "$OSrelease" in
      *.09.*|*.10.*|*.11.*)
        ReadDefaultNum="$ReadHppaHpuxNum"
        DefaultName="HP-UX"
        ;;
    esac
    ;;
  AIX)
    case "$OSrelease" in
      4.*|5.*)
        ReadDefaultNum="$ReadRS6000AIXNum"
        DefaultName="AIX"
      ;;
    esac
    ;;
  Linux)
    ReadDefaultNum="$ReadIntelLinuxNum"
    DefaultName="Intel/Linux"
    ;;
esac

if  [ -z "$ReadDefaultNum" ] ; then
  echo ""
  echo "$ST_WARN_NO_CONFIG ($OSname/$OSrelease)."
  if [ -z "$ReadInstallDir" ]; then
      if yesno "$ST_QUE_CONT [$ST_SMALL_N] " 1 ; then
        :
      else
        exit 1
      fi
  fi
fi


#
# If multiple confurations, get the default configuration
#

if [ -z "$SingleConfig" ] ; then
  if [ "$ReadDefaultNum" ] ; then
      if [ -n "$ReadInstallDir" ]; then
        DefaultConfig="$ReadDefaultNum"
      elif yesno "Install default configuration, Acrobat Reader ${Version} for $DefaultName? [$ST_SMALL_Y] " 0 ; then
        DefaultConfig="$ReadDefaultNum"
      fi

  fi
fi


#
# If a single configuration available the loop will be executed once
# otherwise it will ask for each configuration to install
#

while [ "$NumConfigs" -gt 1 ] ; do

  #
  # If multiple configuration ask for which to install
  #

  if [ "$SingleConfig" ] ; then

    ConfigNum=1

  elif [ "$DefaultConfig" ] ; then

    ConfigNum="$DefaultConfig"

  else

    #
    # Display multiple configurations
    #

    echo " "
    echo "$ST_INFO_DEF_CONFIG2"
    echo " "

    if [ "$AcroSparcSolarisNum" ] ; then
      echo "  ${AcroSparcSolarisNum}. Acrobat ${Version} for SPARC/Solaris 2.x"
    fi
    if [ "$AcroHppaHpuxNum" ] ; then
      echo "  ${AcroHppaHpuxNum}. Acrobat ${Version} for HP-UX"
    fi
    if [ "$AcroRS6000AIXNum" ] ; then
      echo "  ${AcroRS6000AIXNum}. Acrobat ${Version} for AIX"
    fi
    if [ "$AcroIntelLinuxNum" ] ; then
      echo "  ${AcroIntelLinuxNum}. Acrobat ${Version} for Intel/Linux"
    fi
    if [ "$ReadSparcSolarisNum" ] ; then
        echo "  ${ReadSparcSolarisNum}. Acrobat Reader ${Version} for SPARC/Solaris 2.x"
    fi
    if [ "$ReadHppaHpuxNum" ] ; then
        echo "  ${ReadHppaHpuxNum}. Acrobat Reader ${Version} for HP-UX"
    fi
    if [ "$ReadRS6000AIXNum" ] ; then
      echo "  ${ReadRS6000AIXNum}. Acrobat Reader ${Version} for AIX"
    fi
    if [ "$ReadIntelLinuxNum" ] ; then
      echo "  ${ReadIntelLinuxNum}. Acrobat Reader ${Version} for Intel/Linux"
    fi
    if [ "$ExitNum" ] ; then
        echo "  ${ExitNum}. $ST_EXIT_INFO"
    fi

    echo " "
    $echonl "$ST_QUE_CONFIG"
    read ConfigNum

  fi


  #
  # Install the configuration
  #

  if [ -z "$ConfigNum" ] ; then

    echo " "
    echo "$ST_ER_INVALID_RESP2"
    continue
  elif [ "$ConfigNum" = "$ReadSparcSolarisNum" ] ; then

    InstallReader sparcsolaris "$ReadSparcSolarisTar" \
      "$SearchSparcSolarisTar" "$CustomSparcSolarisTar"
    ReadSparcSolarisNum=""
  elif [ "$ConfigNum" = "$ReadHppaHpuxNum" ] ; then

    InstallReader hppahpux "$ReadHppaHpuxTar" \
      "$SearchHppaHpuxTar" "$CustomHppaHpuxTar"
    ReadHppaHpuxNum=""
  elif [ "$ConfigNum" = "$ReadRS6000AIXNum" ] ; then

    InstallReader rs6000aix "$ReadRS6000AIXTar" \
      "$SearchRS6000AIXTar" "$CustomRS6000AIXTar"
    ReadRS6000AIXNum=""

  elif [ "$ConfigNum" = "$ReadIntelLinuxNum" ] ; then

    InstallReader intellinux "$ReadIntelLinuxTar" \
      "$SearchIntelLinuxTar" "$CustomIntelLinuxTar"
    ReadIntelLinuxNum=""

  elif [ "$ConfigNum" = "$ExitNum" ] ; then

    break

  else

    echo " "
    echo "$ST_ER_INVALID_RESP2"
    continue

  fi

  if [ "$DefaultConfig" ] ; then
    break;
  fi

  if [ -z "$MultipleInstall" ] ; then
    break;
  fi

  NumConfigs=`expr $NumConfigs - 1`

done

echo " "
exit 0


