#!/usr/bin/sh
#
# Configure DSP scripts
# pragma ident   "@(#)config_dsp 1.40  05/05/09 SMI"
#

netrc_gen() {
  #  Routine to Create ~/.netrc
  if [ -f $HOMEDIR/.netrc ]; then
    mv $HOMEDIR/.netrc $TMPNETRC    # Preserve existing .netrc
  fi

  echo "machine $DSP_IP login $FTPUSER password $FTPPW" > $HOMEDIR/.netrc
  echo "macdef init" >> $HOMEDIR/.netrc
  echo "bin"  >> $HOMEDIR/.netrc
  echo "prompt"  >> $HOMEDIR/.netrc

  # Load startup.cfg
  echo "lcd $TMPDIR" >> $HOMEDIR/.netrc
  echo "get startup.cfg startup.old" >> $HOMEDIR/.netrc
  echo "put startup.cfg" >> $HOMEDIR/.netrc
  echo "put startup.old" >> $HOMEDIR/.netrc
  
  #Done
  echo "quit"  >> $HOMEDIR/.netrc
  echo ""  >> $HOMEDIR/.netrc
  chmod 600 $HOMEDIR/.netrc
}

cleanup() {
  cd $HOMEDIR
  rm -rf $TMPDIR
  rm -f $HOMEDIR/.netrc         # Remove .netrc file
  if [ -f $TMPNETRC ]; then
    mv $TMPNETRC $HOMEDIR/.netrc  # Restore previous .netrc
  fi
}

create_license() {
  # Create startup.cfg file
  HOST_ID=`/usr/bin/hostid | cut -c2-8`
  LICENSE=`/opt/SUNWse6920/bin/lic -e $HOST_ID 1 0 0 0 -1 | grep "license:" | cut -f2 -d:`
  if `ls -d -1 /var/sadm/swimages/118396-* > /dev/null 2>&1`; then
      BASE="118396"
  else
      BASE="115708"
  fi
  REV=`ls -d -1 /var/sadm/swimages/${BASE}-* | tail -1 | cut -f2 -d\- `
  sed "s/CHASSIS = 010721-d1313f-4d3c00-4249f1-a948fc-6120/CHASSIS = $LICENSE/g" /var/sadm/swimages/${BASE}-${REV}/startup.cfg > $TMPDIR/startup.cfg
}

Change_Timezone_to_GMT() {
  echo "date -Z 25" >> $TMPDIR/startup.cfg
}


error_exit_code() {
  cleanup
  echo "Exiting $0...."
  exit 1
}

#DSP information
DSP_IP="192.168.0.10"
HOMEDIR="$HOME"
FTPUSER="root"
FTPPW="sun1"
PWD=`pwd`
TMPDIR="/tmp/upload.$$"   # Temporary Directory
TMPNETRC=/tmp/netrc.$$    # Backup copy of existing .netrc
FALSE=0			  # Boolean false

trap "error_exit_code" 1 2 3

#MAIN CODE STARTS HERE

ping $DSP_IP
ERRCODE=$?
if [ $ERRCODE -ne $FALSE ]; then
  echo "DSP System Unreachable."
  error_exit_code;
fi

mkdir -p $TMPDIR
create_license
Change_Timezone_to_GMT
netrc_gen

# Start ftp process
ftp $DSP_IP

cleanup

all_done=0
# Check to see if customers want to do firmware upload for DSP
while [ $all_done -eq 0 ]; do
  echo  "Would you like to upload the new firmware to the DSP (Y/N)? \c"
  read ANSWER

  case $ANSWER in
    [Yy] | [Yy][Ee][Ss] ) cd /var/sadm/swimages/${BASE}-${REV}
                          ./dsp.sh
                          cd $PWD
                          all_done=1;;
    [Nn] | [Nn][Oo] ) all_done=1;;
  esac
done

exit 0
