#!/bin/bash USAGE="$(basename $0): a tool for installing software for SBGRID QuoVadis 2016 Usage: $(basename $0) [-hi] General Options: -h This message. -i Install the software suite on this machine. " # Getopts loop while getopts "hi" Option do case $Option in h) echo "$USAGE" exit 0;; i) export INSTALL=true;; *) echo "$USAGE" exit 1;; esac done shift $(($OPTIND - 1)) printf " -- SBGrid Quo Vadis 2016 -- \n" printf "\n" printf "This script will install: \n" printf " - CCP4\n" printf " - DIALS\n" printf " - XDS and XDSGUI \n" printf "with the SBGrid environment\n" printf "\n" printf "This script uses rsync to download the software from SBGrid Servers.\n" printf "This download may take a while depending on your connection speed,\n" printf "but interupted transfers will be resumed when the script is re-run. \n" printf "Exit at any time with a CTRL-c.\n\n" printf "\n" printf "This script will install software in $HOME/programs and requires ~8.5 Gb of disk space.\n" printf "Ready for installation? (y/N) \n" read ready case "$ready" in n|N) printf " No installation - Exiting\n\n" exit 0 ;; y|Y) printf " Installing software\n\n" ;; *) printf "Please enter Y or N \n" printf " No installation - Exiting\n\n" exit 0 ;; esac printf "Be sure to create a symlink to $HOME/programs after the script completes.\n" printf "\n" SB_SITENAME=sbgrid-qv2016 SB_SITEKEY=yEMxe5hjZ7rT3Qz0WOw1vstx4CkqrDFh9FjmOg== export USER=$SB_SITENAME export RSYNC_PASSWORD=$SB_SITEKEY sync_server=sync2.sbgrid.org target=$HOME unset ARCH # Figure out the system type if [ "$(uname)" = "Linux" ]; then if [ $(uname -m) = x86_64 ]; then osname=linux64 ARCH='x86_64-linux' else osname=linux32 printf "32-bit linux is not supported byt this script \n" printf "exiting ...\n" exit 0 fi elif [ "$(uname)" = "Darwin" ]; then # OS X found if [ "$(uname -m)" = "i386" ] || [ "$(uname -m)" = "x86_64" ]; then # OS X Intel osname=osx86 ARCH='i386-mac' else # OS X PowerPC osname=osxppc printf "PPC is not supported byt this script \n" printf "exiting ...\n" exit 0 fi osxminorver=$(sw_vers | grep ProductVersion | awk '{print $2}') osxver=$(echo $osxminorver | awk -F. '{print $1"."$2}') else osname=unknown printf "This OS is not supported byt this script \n" printf "exiting ...\n" exit 0 fi ## test connectivity rsync rsync://$sync_server/sbgrid-test/test/OK >& /dev/null if [ $? -ne 0 ]; then printf "Connectivity test failed!\n" printf "Error reaching $sync_server on port 873.\n" printf "This is a fatal error. exiting ...\n" exit 0 fi ## bootstrap rsync mkdir -p $target/programs/$ARCH/system mkdir -p $target/programs/share/sbgrid mkdir -p $target/programs/share/bin rsync -aq rsync://${sync_server}/${SB_SITENAME}/main/programs/$ARCH/system/rsync ${target}/programs/$ARCH/system/ if [ $? -ne 0 ] ; then printf "Error bootstrapping a modern rsync binary.\n" printf "This is a fatal error. exiting ..." exit 0 fi rsync -aq rsync://${sync_server}/${SB_SITENAME}/main/programs/$ARCH/system/curl ${target}/programs/$ARCH/system/ #get software $target/programs/$ARCH/system/rsync/current/bin/rsync -zrlptODP --progress rsync://$sync_server/sbgrid-qv2016/sites/sbgrid-qv2016/*rc $target/programs $target/programs/$ARCH/system/rsync/current/bin/rsync -zrlptODP --progress rsync://$sync_server/sbgrid-qv2016/sites/sbgrid-qv2016/share/bin/*** $target/programs/share/bin $target/programs/$ARCH/system/rsync/current/bin/rsync -zrlptODP --progress rsync://$sync_server/sbgrid-qv2016/sites/sbgrid-qv2016/share/sbgrid/*** $target/programs/share/sbgrid $target/programs/$ARCH/system/rsync/current/bin/rsync -zrlptODP --progress rsync://$sync_server/sbgrid-qv2016/sites/sbgrid-qv2016/$ARCH/*** $target/programs/$ARCH printf "\n" printf "Be sure to create a symlink to $HOME/programs after this script completes with this command:\n" printf "\n" printf " ln -s $HOME/programs /programs \n" printf "\n" printf "This will likely require sudo/admin priveleges and cannot be completed by the script.\n" printf "\n" printf "\n" #Build environment $target/programs/share/sbgrid/bin/createrc -f -t $target/programs if [ $? -eq 21 ] ; then printf " Environment created successfully\n\n" printf " Source /programs/sbgrid.shrc (bash) or /programs/sbgrid.cshrc (tcsh) to get started !\n\n" fi if [ ! -L /programs ] ; then printf "A symlink to $HOME/programs is required. \n" printf 'Run "sudo ln -s $HOME/programs /programs" \n' printf "\n" printf "This command will require sudo/admin priveleges\n" fi