#!/bin/sh
#
#       $Id: //depot2/idl/Installers/idl-unix-scripts/trunk/src/create_symlinks#4 $
#
# 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 'NV5' 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=92
IDL_VERSION=92
IDLDIR_VERS=idl${IDL_VERSION}
IDLDIR=idl
ENVI_IDL_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

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

if [ \( "$PRODUCT" = "envi" \) ]; then
  PRODUCTBIN=${ENVI_IDL_DIR}/${ENVI_PRODUCT_VERSION}/${IDLDIR}/bin
  PRODUCTBIN_VERS=${ENVI_IDL_DIR}/${ENVI_PRODUCT_VERSION}/${IDLDIR_VERS}/bin
  IDLBIN=${ENVI_IDL_DIR}/${ENVI_PRODUCT}/${IDLDIR}/bin
  IDLBIN_VERS=${ENVI_IDL_DIR}/${ENVI_PRODUCT_VERSION}/${IDLDIR_VERS}/bin
  IDLDIR_VERS=${ENVI_PRODUCT_VERSION}/idl${IDL_VERSION}
  IDLDIR=${ENVI_PRODUCT}/idl
  PARENT_DIR=${ENVI_PRODUCT_VERSION}/idl${IDL_VERSION}
else
  IDLBIN=${ENVI_IDL_DIR}/${IDLDIR}/bin
  IDLBIN_VERS=${ENVI_IDL_DIR}/${IDLDIR_VERS}/bin
fi

PRODUCT_VERSION=${PRODUCT}${PROD_VERSION}

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

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" \) ]; 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}

  ENVI_LINK4=
  ENVI_LINK4_VERSION=
  ENVI_LINK5=
  ENVI_LINK5_VERSION=
  ENVI_LINK6=
  ENVI_LINK6_VERSION=

  ENVI_LINK7=envitaskengine
  ENVI_LINK7_VERSION=envitaskengine${ENVI_VERSION}
  PARENT_DIR=
fi

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


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

if [ "$NOT_INTERACTIVE" != "1" ]; then
	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 NV5 directory to /usr/local/NV5. If we are already there,
  # the symbolic link will fall harmlessly inside the NV5
  # directory where we'll find and remove it.
  #if [ "$ENVI_IDL_DIR" != "/usr/local/NV5" ]; then    # This if-stmt is not foolproof
  #  $IDLBIN_VERS/make_link $ENVI_IDL_DIR /usr/local/NV5 $NOT_INTERACTIVE
  #  if [ $? != 0 ]; then STATUS=1; fi
  #  if [ -w $ENVI_IDL_DIR/NV5 ]; then rm -f $ENVI_IDL_DIR/NV5; 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
  
  if [ "$ENVI_LINK7" != "" ]; then
     $IDLBIN_VERS/make_link $ENVI_PRODUCTBIN_VERS/$ENVI_LINK7 /usr/local/bin/$ENVI_LINK7_VERSION $NOT_INTERACTIVE
     if [ $? != 0 ]; then STATUS=1; fi
     $IDLBIN_VERS/make_link $ENVI_PRODUCTBIN/$ENVI_LINK7 /usr/local/bin/$ENVI_LINK7 $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/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/idltaskengine ]; then
    $IDLBIN_VERS/make_link $IDLBIN_VERS/idltaskengine /usr/local/bin/idltaskengine$IDL_VERSION $NOT_INTERACTIVE
    if [ $? != 0 ]; then STATUS=1; fi
  fi

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

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

  $IDLBIN_VERS/make_link $IDLBIN/envi_idl_license_admin /usr/local/bin/envi_idl_license_admin $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."

