#!/bin/sh
#-----------------------------------------------------------------------
#
# VISIT-INSTALL-CLOSED - Install the visit distributions on the closed
#                        network.
#
# Author: Eric Brugger
# Date:   February 12, 2001
#
# Usage:
#    visit-install-closed [-beta | -private | -public] -v <version>
#
# Modifications:
#   Brad Whitlock, Tue Mar 7 14:10:26 PST 2006
#   I added -b bdivp to the visit-install invokations.
#
#   Eric Brugger, Mon Apr  7 13:52:50 PDT 2008
#   Removed sc install.
#
#   Hank Childs, Sat May  2 13:26:51 CDT 2009
#   Renamed config file to llnl_closed.
#
#   Eric Brugger, Fri Nov  5 15:40:02 PDT 2010
#   Replaced hopi with inca and removed pruple.
#
#   Eric Brugger, Wed Jan  5 09:40:00 PST 2011
#   Added terminator.
#
#   Eric Brugger, Fri Mar 25 10:20:49 PDT 2011
#   Added cielo.
#
#   Eric Brugger, Mon Jul 30 10:31:10 PDT 2012
#   Added gremlin.
#
#   Eric Brugger, Wed Mar 20 11:49:58 PDT 2013
#   Deleted gremlin. Deleted terminator. Replaced termite with hitit.
#
#   Eric Brugger, Thu Jun 20 10:37:05 PDT 2013
#   I modified the hitit install since it is now an x86_64 system instead
#   of an i686 system.
#
#   Eric Brugger, Tue Jul  9 11:23:43 PDT 2013
#   I changed the gateway node to login to cielo.
#
#   Eric Brugger, Mon Nov 21 11:53:53 PST 2016
#   Deleted cielo. Added trinity.
#
#   Eric Brugger, Mon Nov 21 16:43:04 PST 2016
#   Added jade.
#
#   Eric Brugger, Mon Jan  9 13:52:57 PST 2017
#   I replaced inca with zin.
#
#   Eric Brugger, Tue Jan 17 17:12:11 PST 2017
#   I replaced hitit with winnipeg.
#
#   Eric Brugger, Fri Feb 17 12:17:29 PST 2017
#   I changed the bank for all the LLNL systems from bdivp to wbronze.
#
#   Eric Brugger, Mon Mar 19 14:23:59 PDT 2018
#   I removed the modifications to the internallauncher for toss3 
#   systems. I made a change in internallauncher and customlauncher
#   that made this unnecessary.
#
#   Eric Brugger, Mon Nov 19 15:54:23 PST 2018
#   I added shark.
#
#   Eric Brugger, Wed Mar 20 10:31:35 PDT 2019
#   I deleted zin. I added sierra. I updated jade for 3.0.0b.
#
#   Eric Brugger, Thu Sep 26 17:32:41 PDT 2019
#   I removed special logic for installing on toss3 systems.
#
#   Eric Brugger, Mon Jan 13 15:24:51 PST 2020
#   I removed shark.
#
#-----------------------------------------------------------------------

test=no

user=`whoami`

#
# Parse the execute line, providing default values for error checking.
#
winnipeg=true
jade=true
sierra=true
trinity=true

ver=undefined

#
# The loop is executed once for each symbol on the execute line.  This means
# that $1 may be blank for later executions of the loop if any "shift 2"
# commands are executed.  The variable abc is not used in the loop.
#
for abc
do
   case $1 in
      -none)
         winnipeg=false
         jade=false
         sierra=false
         trinity=false
         shift
         ;;
      -winnipeg)
         winnipeg=false
         shift
         ;;
      +winnipeg)
         winnipeg=true
         shift
         ;;
      -jade)
         jade=false
         shift
         ;;
      +jade)
         jade=true
         shift
         ;;
      -sierra)
         sierra=false
         shift
         ;;
      +sierra)
         sierra=true
         shift
         ;;
      -trinity)
         trinity=false
         shift
         ;;
      +trinity)
         trinity=true
         shift
         ;;
      -v)
         ver=$2
         shift 2
         ;;
   esac
done

#
# Check that the version was provided.
#
if [ $ver = undefined ]
then
   echo "Usage: [-none] [-<machine name>] -v <version>"
   exit
fi

#
# Check that the visit install script is present.
#
if [ ! -e visit-install ]
then
   echo "visit-install is missing."
   exit
fi

ver2=`echo $ver | tr "." "_"`
ver=`echo $ver2 | tr "_" "."`

#
# Install on winnipeg.
#
rm -f winnipeg
cat <<EOF > winnipeg
#!/bin/sh
./visit-install -private -c llnl_closed -g visit -b wbronze -gw -l $ver linux-x86_64-winnipeg /misc/gapps/visit > installlog 2>&1
rm -f resultlog
echo ""                                          > resultlog 2>&1
echo "        install of visit on winnipeg"      >> resultlog 2>&1
echo "       ------------------------------"     >> resultlog 2>&1
echo ""                                          >> resultlog 2>&1
df -k /misc/gapps/visit                          >> resultlog 2>&1
echo ""                                          >> resultlog 2>&1
ls -l /misc/gapps/visit/$ver+/linux-x86_64/bin   >> resultlog 2>&1
echo ""                                          >> resultlog 2>&1
echo "number of database plugins = "\`ls /misc/gapps/visit/$ver+/linux-x86_64/plugins/databases/libI* | wc -l\` >> resultlog 2>&1
echo "number of operator plugins = "\`ls /misc/gapps/visit/$ver+/linux-x86_64/plugins/operators/libI* | wc -l\` >> resultlog 2>&1
echo "number of plot plugins = "\`ls /misc/gapps/visit/$ver+/linux-x86_64/plugins/plots/libI* | wc -l\` >> resultlog 2>&1
echo ""                                          >> resultlog 2>&1
echo "The database plugins:"                     >> resultlog 2>&1
ls /misc/gapps/visit/$ver+/linux-x86_64/plugins/databases/libI* | sed "s/\/misc\/gapps\/visit\/$ver+\/linux-x86_64\/plugins\/databases\/libI//" | sed "s/Database.so//" >> resultlog 2>&1
mv resultlog resultlog.winnipeg
EOF

if [ $winnipeg = true ]
then
   if [ $test = no ]
   then
      scp -P 22 winnipeg:winnipeg/visitbuild/visit$ver2.linux-x86_64.tar.gz visit$ver2.linux-x86_64-winnipeg.tar.gz
      scp -P 22 visit$ver2.linux-x86_64-winnipeg.tar.gz winnipeg:
      scp -P 22 visit-install winnipeg:
      scp -P 22 winnipeg winnipeg:winnipeg_install
      ssh -p 22 winnipeg "chmod 750 winnipeg_install;./winnipeg_install"
   fi
fi

#
# Install on jade.
#
rm -f jade
cat <<EOF > jade
#!/bin/sh
./visit-install -private -c llnl_closed -g visit -b wbronze -gw -l $ver linux-x86_64-jade /usr/gapps/visit > installlog 2>&1
rm -f resultlog
echo ""                                              > resultlog 2>&1
echo "        install of visit on jade"              >> resultlog 2>&1
echo "       --------------------------"             >> resultlog 2>&1
echo ""                                              >> resultlog 2>&1
df -k /usr/gapps/visit                               >> resultlog 2>&1
echo ""                                              >> resultlog 2>&1
ls -l /usr/gapps/visit/$ver+/linux-x86_64/bin        >> resultlog 2>&1
echo ""                                              >> resultlog 2>&1
echo "number of database plugins = "\`ls /usr/gapps/visit/$ver+/linux-x86_64/plugins/databases/libI* | wc -l\` >> resultlog 2>&1
echo "number of operator plugins = "\`ls /usr/gapps/visit/$ver+/linux-x86_64/plugins/operators/libI* | wc -l\` >> resultlog 2>&1
echo "number of plot plugins = "\`ls /usr/gapps/visit/$ver+/linux-x86_64/plugins/plots/libI* | wc -l\` >> resultlog 2>&1
echo ""                                              >> resultlog 2>&1
echo "The database plugins:"                         >> resultlog 2>&1
ls /usr/gapps/visit/$ver+/linux-x86_64/plugins/databases/libI* | sed "s/\/usr\/gapps\/visit\/$ver+\/linux-x86_64\/plugins\/databases\/libI//" | sed "s/Database.so//" >> resultlog 2>&1
mv resultlog resultlog.jade
EOF

if [ $jade = true ]
then
   if [ $test = no ]
   then
      scp jade962:/usr/tmp/$user/jade/visitbuild/visit$ver2.linux-x86_64.tar.gz visit$ver2.linux-x86_64-jade.tar.gz
      scp visit$ver2.linux-x86_64-jade.tar.gz jade:
      scp visit-install jade:
      scp jade jade:jade_install
      ssh jade "chmod 750 jade_install;./jade_install"
   fi
fi

#
# Install on sierra
#
rm -f sierra
cat <<EOF > sierra
#!/bin/sh
./visit-install -private -c llnl_closed -g visit -b wbronze -gw -l $ver linux-intel-sierra /usr/gapps/visit > installlog 2>&1
rm -f resultlog
echo ""                                              > resultlog 2>&1
echo "        install of visit on sierra"            >> resultlog 2>&1
echo "       ----------------------------"           >> resultlog 2>&1
echo ""                                              >> resultlog 2>&1
df -k /usr/gapps/visit                               >> resultlog 2>&1
echo ""                                              >> resultlog 2>&1
ls -l /usr/gapps/visit/$ver+/linux-intel/bin         >> resultlog 2>&1
echo ""                                              >> resultlog 2>&1
echo "number of database plugins = "\`ls /usr/gapps/visit/$ver+/linux-intel/plugins/databases/libI* | wc -l\` >> resultlog 2>&1
echo "number of operator plugins = "\`ls /usr/gapps/visit/$ver+/linux-intel/plugins/operators/libI* | wc -l\` >> resultlog 2>&1
echo "number of plot plugins = "\`ls /usr/gapps/visit/$ver+/linux-intel/plugins/plots/libI* | wc -l\` >> resultlog 2>&1
echo ""                                              >> resultlog 2>&1
echo "The database plugins:"                         >> resultlog 2>&1
ls /usr/gapps/visit/$ver+/linux-intel/plugins/databases/libI* | sed "s/\/usr\/gapps\/visit\/$ver+\/linux-intel\/plugins\/databases\/libI//" | sed "s/Database.so//" >> resultlog 2>&1
mv resultlog resultlog.sierra
EOF

if [ $sierra = true ]
then
   if [ $test = no ]
   then
      scp sierra4358:/usr/tmp/$user/sierra/visitbuild/visit$ver2.linux-intel.tar.gz visit$ver2.linux-intel-sierra.tar.gz
      scp visit$ver2.linux-intel-sierra.tar.gz sierra:
      scp visit-install sierra:
      scp sierra sierra:sierra_install
      ssh sierra "chmod 750 sierra_install;./sierra_install"
   fi
fi

#
# Install on trinity.
#
rm -f trinity
cat <<EOF > trinity
#!/bin/sh
./visit-install -private -c llnl_closed -l $ver linux-x86_64-trinity /usr/projects/views/visit > installlog 2>&1
rm -f resultlog
echo ""                                                > resultlog 2>&1
echo "        install of visit on trinity"             >> resultlog 2>&1
echo "       -----------------------------"            >> resultlog 2>&1
echo ""                                                >> resultlog 2>&1
df -k /usr/projects/views/visit                        >> resultlog 2>&1
echo ""                                                >> resultlog 2>&1
ls -l /usr/projects/views/visit/$ver+/linux-x86_64/bin >> resultlog 2>&1
echo ""                                                >> resultlog 2>&1
echo "number of database plugins = "\`ls /usr/projects/views/visit/$ver+/linux-x86_64/plugins/databases/libI* | wc -l\` >> resultlog 2>&1
echo "number of operator plugins = "\`ls /usr/projects/views/visit/$ver+/linux-x86_64/plugins/operators/libI* | wc -l\` >> resultlog 2>&1
echo "number of plot plugins = "\`ls /usr/projects/views/visit/$ver+/linux-x86_64/plugins/plots/libI* | wc -l\` >> resultlog 2>&1
echo ""                                                >> resultlog 2>&1
echo "The database plugins:"                           >> resultlog 2>&1
ls /usr/projects/views/visit/$ver+/linux-x86_64/plugins/databases/libI* | sed "s/\/usr\/projects\/views\/visit\/$ver+\/linux-x86_64\/plugins\/databases\/libI//" | sed "s/Database.so//" >> resultlog 2>&1
mv resultlog resultlog.trinity
EOF

if [ $trinity = true ]
then
   if [ $test = no ]
   then
      cp /tmp/$user/trinity/visitbuild/visit$ver2.linux-x86_64.tar.gz visit$ver2.linux-x86_64-trinity.tar.gz
      cp trinity trinity_install
      chmod 750 trinity_install;./trinity_install
   fi
fi

#
# Clean up.
#
if [ $test = no ]
then
   rm -f winnipeg jade sierra trinity
fi
