#!/bin/sh 
#
#       $Id: //depot/Release/ENVI53_IDL85/idl/idldir/bin/unix/install#1 $
#
# install
#
# This shell script carries out the steps required to install IDL
# or an IDL based product once the main directory has been unpacked.
# It expects to be run from the exelis directory.
#

# Make sure whoami is found on Solaris
PATH="$PATH:/usr/ucb"
USER=`whoami`
LANDMARK=resource/fonts/hersh1.chr
SET_LINKS=1

# Establish the name (upper and lower case) and the version.
NAME="IDL"
PROD_VERSION=85
IDL_VERSION=85
IDLDIR_VERS=idl${IDL_VERSION}
IDLDIR=idl
EXELISDIR=`pwd`
ESE_WORK_DIR=`pwd`
PARENT_DIR=idl${IDL_VERSION}

if [ "$1" = "NOT_INTERACTIVE" ]; then
   NOT_INTERACTIVE=1
else
   NOT_INTERACTIVE=
fi


PRODUCT=`echo $NAME | tr [A-Z] [a-z]`
if [ "$PRODUCT" != "idl" ]; then
   LAYERED=1
fi

IDLBIN=${EXELISDIR}/${IDLDIR}/bin
IDLBIN_VERS=${EXELISDIR}/${IDLDIR_VERS}/bin

ENVI_PRODUCT=envi
ENVI_VERSION=53
ENVI_PRODUCT_VERSION=${ENVI_PRODUCT}${ENVI_VERSION}

PRODUCTBIN=${EXELISDIR}/${IDLDIR}/bin
PRODUCTBIN_VERS=${EXELISDIR}/${IDLDIR_VERS}/bin
PRODUCT_VERSION=${PRODUCT}${PROD_VERSION}

ENVI_BIN=${EXELISDIR}/${ENVI_PRODUCT}/bin
ENVI_BIN_VERS=${EXELISDIR}/${ENVI_PRODUCT_VERSION}/bin
ENVI_PRODUCTBIN=${EXELISDIR}/${ENVI_PRODUCT}/bin
ENVI_PRODUCTBIN_VERS=${EXELISDIR}/${ENVI_PRODUCT_VERSION}/bin
ENVI_PRODUCT_VERSION=${ENVI_PRODUCT}${ENVI_VERSION}

ESE_PRODUCT=se
ESE_VERSION=53
ESE_PRODUCT_VERSION=${ESE_PRODUCT}${ESE_VERSION}

ESE_BIN=${ESE_WORK_DIR}/${ESE_PRODUCT}/bin
ESE_BIN_VERS=${ESE_WORK_DIR}/${ESE_PRODUCT_VERSION}/bin
ESE_PRODUCTBIN=${ESE_WORK_DIR}/${ESE_PRODUCT}/bin
ESE_PRODUCTBIN_VERS=${ESE_WORK_DIR}/${ESE_PRODUCT_VERSION}/bin

if [ "$1" = "LICENSE" ]; then
  cat  ${IDLDIR_VERS}/help/copyrights/license.txt | more
  echo ""
  if [ `sh $IDLBIN_VERS/yesno "Do you accept all of the terms of the preceding license agreement"` = 0 ]; then exit 1; fi
fi


if [ \( "$PRODUCT" = "envi" \) -o \( "$PRODUCT" = "ese" \) ]; then
# Defines product links for ENVI
ENVI_LINK1=envi
ENVI_LINK1_VERSION=envi${ENVI_VERSION}
ENVI_LINK2=envi_rt
ENVI_LINK2_VERSION=envi_rt${ENVI_VERSION}
ENVI_LINK3=envihelp
ENVI_LINK3_VERSION=envihelp${ENVI_VERSION}
PARENT_DIR=
fi

if [ \( "$PRODUCT" = "ese" \) ]; then
# Defines product links for ESE
ESE_LINK1=EnviServicesEngine
ESE_LINK1_VERSION=EnviServicesEngine${ESE_VERSION}
ESE_LINK2=esehelp
ESE_LINK2_VERSION=esehelp${ESE_VERSION}
PARENT_DIR=
fi

# Preserve the file modes in the source tar files
umask 000

if [ ! -f $EXELISDIR/$IDLDIR_VERS/$LANDMARK ]; then
  echo "
    The current directory must be set to the exelis directory.
    Change the default to the exelis directory and re-run
    this script.
        "
  exit 1
fi

if [ \( "$PRODUCT" = "ese" \) ]; then
		NAME="IDL"
fi

if [ -d idl$IDL_VERSION ]; then
   rm -f idl
   ln -s idl$IDL_VERSION idl
fi

if [ -d $ENVI_PRODUCT_VERSION  ]; then
   rm -f $ENVI_PRODUCT
   ln -s ${ENVI_PRODUCT}${ENVI_VERSION} ${ENVI_PRODUCT}
fi

if [ \( "$PRODUCT" = "ese" \) ]; then
	if [ -d $ESE_WORK_DIR/$ESE_PRODUCT_VERSION  ]; then
		pushd $ESE_WORK_DIR > /dev/null
		rm -f $ESE_PRODUCT
		ln -s ${ESE_PRODUCT}${ESE_VERSION} ${ESE_PRODUCT}
		popd > /dev/null
	fi	
fi

# Symbolic links.

# ESE_LINK1=EnviServicesEngine, EnviServicesEngine is in idl/bin directory, not se/bin directory
if [ "$ESE_LINK1" != "" ]; then
     ESE_LINK1_LN="
           ln -s \$EXELIS/${IDLDIR_VERS}/bin/$ESE_LINK1    LOCAL_DIR/$ESE_LINK1_VERSION
           ln -s \$EXELIS/${IDLDIR}/bin/$ESE_LINK1    LOCAL_DIR/$ESE_LINK1
"
  fi
  if [ "$ESE_LINK2" != "" ]; then
     ESE_LINK2_LN="
           ln -s \$ESE_WORK_DIR/$ESE_PRODUCT_VERSION/bin/$ESE_LINK2    LOCAL_DIR/$ESE_LINK2_VERSION
           ln -s \$ESE_WORK_DIR/$ESE_PRODUCT/bin/$ESE_LINK2    LOCAL_DIR/$ESE_LINK2
"
  fi

  if [ "$ENVI_LINK1" != "" ]; then
     ENVI_LINK1_LN="
           ln -s \$EXELIS/$ENVI_PRODUCT_VERSION/bin/$ENVI_LINK1    LOCAL_DIR/$ENVI_LINK1_VERSION
           ln -s \$EXELIS/$ENVI_PRODUCT/bin/$ENVI_LINK1    LOCAL_DIR/$ENVI_LINK1
"
  fi
  if [ "$ENVI_LINK2" != "" ]; then
     ENVI_LINK2_LN="
           ln -s \$EXELIS/$ENVI_PRODUCT_VERSION/bin/$ENVI_LINK2    LOCAL_DIR/$ENVI_LINK2_VERSION
           ln -s \$EXELIS/$ENVI_PRODUCT/bin/$ENVI_LINK2    LOCAL_DIR/$ENVI_LINK2
"
  fi
  if [ "$ENVI_LINK3" != "" ]; then
     ENVI_LINK3_LN="
           ln -s \$EXELIS/$ENVI_PRODUCT_VERSION/bin/$ENVI_LINK3    LOCAL_DIR/$ENVI_LINK3_VERSION
           ln -s \$EXELIS/$ENVI_PRODUCT/bin/$ENVI_LINK3    LOCAL_DIR/$ENVI_LINK3
"
  fi
  if [ "$ENVI_LINK4" != "" ]; then
     ENVI_LINK4_LN="
           ln -s \$EXELIS/$ENVI_PRODUCT_VERSION/bin/$ENVI_LINK4    LOCAL_DIR/$ENVI_LINK4_VERSION
           ln -s \$EXELIS/$ENVI_PRODUCT/bin/$ENVI_LINK4    LOCAL_DIR/$ENVI_LINK4
"
  fi
  if [ "$ENVI_LINK5" != "" ]; then
     ENVI_LINK5_LN="
           ln -s \$EXELIS/$ENVI_PRODUCT_VERSION/bin/$ENVI_LINK5    LOCAL_DIR/$ENVI_LINK5_VERSION
           ln -s \$EXELIS/$ENVI_PRODUCT/bin/$ENVI_LINK5    LOCAL_DIR/$ENVI_LINK5
"
  fi

  if [ "$ENVI_LINK6" != "" ]; then
     ENVI_LINK6_LN="
           ln -s \$EXELIS/$ENVI_PRODUCT_VERSION/bin/$ENVI_LINK6    LOCAL_DIR/$ENVI_LINK6_VERSION
           ln -s \$EXELIS/$ENVI_PRODUCT/bin/$ENVI_LINK6    LOCAL_DIR/$ENVI_LINK6
"
  fi

IDL_LN="
           ln -s \$EXELIS/${IDLDIR_VERS}/bin/idl    LOCAL_DIR/idl$IDL_VERSION
           ln -s \$EXELIS/${IDLDIR}/bin/idl  LOCAL_DIR/idl

           ln -s \$EXELIS/${IDLDIR_VERS}/bin/idlde    LOCAL_DIR/idlde$IDL_VERSION
           ln -s \$EXELIS/${IDLDIR}/bin/idlde  LOCAL_DIR/idlde

           ln -s \$EXELIS/${IDLDIR_VERS}/bin/idlrpc    LOCAL_DIR/idlrpc$IDL_VERSION
           ln -s \$EXELIS/${IDLDIR}/bin/idlrpc  LOCAL_DIR/idlrpc

           ln -s \$EXELIS/${IDLDIR_VERS}/bin/idlhelp    LOCAL_DIR/idlhelp$IDL_VERSION
           ln -s \$EXELIS/${IDLDIR}/bin/idlhelp  LOCAL_DIR/idlhelp

           ln -s \$EXELIS/${IDLDIR_VERS}/bin/idltask    LOCAL_DIR/idltask$IDL_VERSION
           ln -s \$EXELIS/${IDLDIR}/bin/idltask  LOCAL_DIR/idltask

           ln -s \$EXELIS/${IDLDIR_VERS}/bin/exelislicense    LOCAL_DIR/exelislicense$IDL_VERSION
           ln -s \$EXELIS/${IDLDIR}/bin/exelislicense    LOCAL_DIR/exelislicense
"

if [ "$NOT_INTERACTIVE" != "1" ]; then
	if [ \( "$PRODUCT" = "ese" \) ]; then
		PRODUCTBIN=$ESE_PRODUCTBIN
	fi
	if [ \( "$PRODUCT" = "envi" \) ]; then
		PRODUCTBIN=$ENVI_PRODUCTBIN
	fi
echo "
----------------------
Symbolic link script:
----------------------
"
fi 	# ! NOT_INTERACTIVE


if [ $SET_LINKS = "1" ]; then
  #echo " "
  # If the system lacks /usr/local or /usr/local/bin, then create them.
  # If we're not root, then don't bother
  if [ "$USER" = root ]; then
    for DIR in local local/bin; do
      if [ ! -d /usr/$DIR ]; then
        echo "System lacks directory /usr/$DIR. Creating..."
        mkdir /usr/$DIR
        chmod 775 /usr/$DIR
      fi
    done
  fi

  STATUS=0



  # Link exelis directory to /usr/local/exelis. If we are already there,
  # the symbolic link will fall harmlessly inside the exelis
  # directory where we'll find and remove it.
  #if [ "$EXELISDIR" != "/usr/local/exelis" ]; then    # This if-stmt is not foolproof
  #  $IDLBIN_VERS/make_link $EXELISDIR /usr/local/exelis $NOT_INTERACTIVE
  #  if [ $? != 0 ]; then STATUS=1; fi
  #  if [ -w $EXELISDIR/exelis ]; then rm -f $EXELISDIR/exelis; fi
  #fi

  # ESE_LINK1=EnviServicesEngine, EnviServicesEngine is in idl/bin directory, not se/bin directory
  if [ "$ESE_LINK1" != "" ]; then
     $IDLBIN_VERS/make_link $IDLBIN_VERS/$ESE_LINK1 /usr/local/bin/$ESE_LINK1_VERSION $NOT_INTERACTIVE
     if [ $? != 0 ]; then STATUS=1; fi
     $IDLBIN_VERS/make_link $IDLBIN/$ESE_LINK1 /usr/local/bin/$ESE_LINK1 $NOT_INTERACTIVE
     if [ $? != 0 ]; then STATUS=1; fi
  fi

  if [ "$ESE_LINK2" != "" ]; then
     $IDLBIN_VERS/make_link $ESE_PRODUCTBIN_VERS/$ESE_LINK2 /usr/local/bin/$ESE_LINK2_VERSION $NOT_INTERACTIVE
     if [ $? != 0 ]; then STATUS=1; fi
     $IDLBIN_VERS/make_link $ESE_PRODUCTBIN/$ESE_LINK2 /usr/local/bin/$ESE_LINK2 $NOT_INTERACTIVE
     if [ $? != 0 ]; then STATUS=1; fi
  fi
  
  # Set the ENVI links if they exist
  if [ "$ENVI_LINK1" != "" ]; then
     $IDLBIN_VERS/make_link $ENVI_PRODUCTBIN_VERS/$ENVI_LINK1 /usr/local/bin/$ENVI_LINK1_VERSION $NOT_INTERACTIVE
     if [ $? != 0 ]; then STATUS=1; fi
     $IDLBIN_VERS/make_link $ENVI_PRODUCTBIN/$ENVI_LINK1 /usr/local/bin/$ENVI_LINK1 $NOT_INTERACTIVE
     if [ $? != 0 ]; then STATUS=1; fi
  fi

  if [ "$ENVI_LINK2" != "" ]; then
     $IDLBIN_VERS/make_link $ENVI_PRODUCTBIN_VERS/$ENVI_LINK2 /usr/local/bin/$ENVI_LINK2_VERSION $NOT_INTERACTIVE
     if [ $? != 0 ]; then STATUS=1; fi
     $IDLBIN_VERS/make_link $ENVI_PRODUCTBIN/$ENVI_LINK2 /usr/local/bin/$ENVI_LINK2 $NOT_INTERACTIVE
     if [ $? != 0 ]; then STATUS=1; fi
  fi

  if [ "$ENVI_LINK3" != "" ]; then
     $IDLBIN_VERS/make_link $ENVI_PRODUCTBIN_VERS/$ENVI_LINK3 /usr/local/bin/$ENVI_LINK3_VERSION $NOT_INTERACTIVE
     if [ $? != 0 ]; then STATUS=1; fi
     $IDLBIN_VERS/make_link $ENVI_PRODUCTBIN/$ENVI_LINK3 /usr/local/bin/$ENVI_LINK3 $NOT_INTERACTIVE
     if [ $? != 0 ]; then STATUS=1; fi
  fi

  if [ "$ENVI_LINK4" != "" ]; then
     $IDLBIN_VERS/make_link $ENVI_PRODUCTBIN_VERS/$ENVI_LINK4 /usr/local/bin/$ENVI_LINK4_VERSION $NOT_INTERACTIVE
     if [ $? != 0 ]; then STATUS=1; fi
     $IDLBIN_VERS/make_link $ENVI_PRODUCTBIN/$ENVI_LINK4 /usr/local/bin/$ENVI_LINK4 $NOT_INTERACTIVE
     if [ $? != 0 ]; then STATUS=1; fi
  fi

  if [ "$ENVI_LINK5" != "" ]; then
     $IDLBIN_VERS/make_link $ENVI_PRODUCTBIN_VERS/$ENVI_LINK5 /usr/local/bin/$ENVI_LINK5_VERSION $NOT_INTERACTIVE
     if [ $? != 0 ]; then STATUS=1; fi
     $IDLBIN_VERS/make_link $ENVI_PRODUCTBIN/$ENVI_LINK5 /usr/local/bin/$ENVI_LINK5 $NOT_INTERACTIVE
     if [ $? != 0 ]; then STATUS=1; fi
  fi

  if [ "$ENVI_LINK6" != "" ]; then
     $IDLBIN_VERS/make_link $ENVI_PRODUCTBIN_VERS/$ENVI_LINK6 /usr/local/bin/$ENVI_LINK6_VERSION $NOT_INTERACTIVE
     if [ $? != 0 ]; then STATUS=1; fi
     $IDLBIN_VERS/make_link $ENVI_PRODUCTBIN/$ENVI_LINK6 /usr/local/bin/$ENVI_LINK6 $NOT_INTERACTIVE
     if [ $? != 0 ]; then STATUS=1; fi
  fi

  $IDLBIN_VERS/make_link $IDLBIN_VERS/idl /usr/local/bin/idl$IDL_VERSION $NOT_INTERACTIVE
  if [ $? != 0 ]; then STATUS=1; fi

  $IDLBIN_VERS/make_link $IDLBIN_VERS/idl /usr/local/bin/idl$IDL_VERSION $NOT_INTERACTIVE
  if [ $? != 0 ]; then STATUS=1; fi

  $IDLBIN_VERS/make_link $IDLBIN/idl /usr/local/bin/idl $NOT_INTERACTIVE
  if [ $? != 0 ]; then STATUS=1; fi
 

  if [ -x $IDLBIN_VERS/idlde ]; then
    $IDLBIN_VERS/make_link $IDLBIN_VERS/idlde /usr/local/bin/idlde$IDL_VERSION $NOT_INTERACTIVE
    if [ $? != 0 ]; then STATUS=1; fi
  fi

  if [ -x $IDLBIN/idlde ]; then
    $IDLBIN_VERS/make_link $IDLBIN/idlde /usr/local/bin/idlde $NOT_INTERACTIVE
    if [ $? != 0 ]; then STATUS=1; fi
  fi

  if [ -x $IDLBIN_VERS/idlhelp ]; then
    $IDLBIN_VERS/make_link $IDLBIN_VERS/idlhelp /usr/local/bin/idlhelp$IDL_VERSION $NOT_INTERACTIVE
    if [ $? != 0 ]; then STATUS=1; fi
  fi

  if [ -x $IDLBIN/idlhelp ]; then
    $IDLBIN_VERS/make_link $IDLBIN/idlhelp /usr/local/bin/idlhelp $NOT_INTERACTIVE
    if [ $? != 0 ]; then STATUS=1; fi
  fi

  if [ -x $IDLBIN_VERS/idlrpc ]; then
    $IDLBIN_VERS/make_link $IDLBIN_VERS/idlrpc /usr/local/bin/idlrpc$IDL_VERSION $NOT_INTERACTIVE
    if [ $? != 0 ]; then STATUS=1; fi
  fi

  if [ -x $IDLBIN/idlrpc ]; then
    $IDLBIN_VERS/make_link $IDLBIN/idlrpc /usr/local/bin/idlrpc $NOT_INTERACTIVE
    if [ $? != 0 ]; then STATUS=1; fi
  fi

  if [ -x $IDLBIN_VERS/idltask ]; then
    $IDLBIN_VERS/make_link $IDLBIN_VERS/idltask /usr/local/bin/idltask$IDL_VERSION $NOT_INTERACTIVE
    if [ $? != 0 ]; then STATUS=1; fi
  fi

  if [ -x $IDLBIN/idltask ]; then
    $IDLBIN_VERS/make_link $IDLBIN/idltask /usr/local/bin/idltask $NOT_INTERACTIVE
    if [ $? != 0 ]; then STATUS=1; fi
  fi

  $IDLBIN_VERS/make_link $IDLBIN_VERS/exelislicense /usr/local/bin/exelislicense$IDL_VERSION $NOT_INTERACTIVE
  if [ $? != 0 ]; then STATUS=1; fi

  $IDLBIN_VERS/make_link $IDLBIN/exelislicense /usr/local/bin/exelislicense $NOT_INTERACTIVE
  if [ $? != 0 ]; then STATUS=1; fi


  if [ "$STATUS" != "0" ]; then
    echo "
    Not all symbolic links were successfully installed.
    Please correct the problem that caused this failure and re-execute install. 
    "
  fi
fi

echo "
Creation of symbolic links has successfully been completed."

