Skip to content
Snippets Groups Projects
Commit b617bb7e authored by David Emschermann's avatar David Emschermann
Browse files

Add revamped autoinstall script - 3rd trial

parent 175d0c20
No related branches found
No related tags found
1 merge request!26Add revamped autoinstall script - 3rd trial
#!/bin/bash
#
## semi-automated script installing FairSoft, FairRoot and CbmRoot
## semi-automated script installing of FairSoft, FairRoot and CbmRoot
#
# usage:
# $ ./autoinstall_framework.sh
# for installation of all three or
# $ ./autoinstall_framework.sh --help
# to see a help file with possible user flags.
#
# 11.06.2020 - modification for robustness and to bring up to line with standard by Eoin Clerkin
# 31.08.2018 - re-introduce old version
# 24.05.2018 - switch to oct17p1 as dev version
# 31.01.2017 - make ROOT6 the default
# 17.12.2015 - split fairsoft directory into src and install
# 01.12.2015 - add selection of root version
# 17.07.2015 - introduce option to compile dev settings
# 17.07.2015 - introduce option to compile dev settings
# 02.06.2015 - introduce parameters for individual package selection
# 13.03.2015 - initial version
# by David Emschermann
#-------------------------------------
# usage:
# svn co https://subversion.gsi.de/cbmsoft/cbmroot/trunk $CBMSRCDIR
# cd $CBMSRCDIR
# ./autoinstall_framework.sh dev 0 0 1
# or
# ./autoinstall_framework.sh 0 0 1
# or
# ./autoinstall_framework.sh 1 1 1
#-------------------------------------
exec &> >(tee -a .autoinstall_framework.log) # So the user can check up a complete log if he wishes.
# choose your root verion
# choose your root version
export ROOTVER=6
# put your desired variants here:
export FSOFTDEV=jun19p2
export FROOTDEV=v18.2.1
export FROOTDEV=v18.4.0
export FSOFTPRO=jun19p1
export FROOTPRO=v18.2.0
export FSOFTPRO=jun19p2
export FROOTPRO=v18.2.1
export FSOFTOLD=may18p1
export FROOTOLD=v18.0.7
#-------------------------------------
export NUMOFCPU=`cat /proc/cpuinfo | grep processor | wc -l`
export CBMSRCDIR=`pwd`
#-------------------------------------
export FSOFTOLD=jun19p1
export FROOTOLD=v18.2.0
# set default version to pro
export FSOFTVER=$FSOFTPRO
export FROOTVER=$FROOTPRO
# check if we want to run with GSI compiler
if [ $# -ge 1 ]; then
if [ "$1" == "gsi" ]; then
# use a different compiler from GSI
module use /cvmfs/it.gsi.de/modulefiles/
module load compiler/gcc/4.9.2
export CXX=g++
shift
fi
fi
# check if we want to run with dev
if [ $# -ge 1 ]; then
if [ "$1" == "dev" ]; then
export FSOFTVER=$FSOFTDEV
export FROOTVER=$FROOTDEV
shift
elif [ "$1" == "old" ]; then
export FSOFTVER=$FSOFTOLD
export FROOTVER=$FROOTOLD
shift
fi
fi
SETUP_FAIRSOFT=0 && SETUP_FAIRROOT=0 && SETUP_CBMROOT=0;
[ $# -eq "0" ] && SETUP_FAIRSOFT=1 && SETUP_FAIRROOT=1 && SETUP_CBMROOT=1 : echo "Some Error has occurred" # Default behaviour with no flags, all three should be installed.
while test $# -gt 0; do
case "$1" in
-y|-yes|--yes)
echo "Will update environment to new build after installation"
ANSWER="YES";
shift;;
-n|-no|--no)
echo "In case someone wants to put in script."
ANSWER="NO";
shift;;
-fs|-s|-fairsof|--fairsoft)
echo "*** FAIRSOFT to be installed"
SETUP_FAIRSOFT="1";
shift;;
-fr|-r|-fairroot|--fairroot)
echo "*** FAIRROOT to be installed"
SETUP_FAIRROOT="1";
shift;;
-cr|-c|-cbmroot|--cbmroot)
echo "*** CBMROOT to be installed"
SETUP_CBMROOT="1";
shift;;
-d|--dev|-dev|dev)
echo "*** DEV VERSION specified"
export FSOFTVER=$FSOFTDEV
export FROOTVER=$FROOTDEV
shift;;
-o|--old|-old|old)
echo "*** OLD VERSION specified"
export FSOFTVER=$FSOFTOLD
export FROOTVER=$FROOTOLD
shift;;
0|1)
# This unusual addition is to continue to provide back compatiability with previous versions of autoinstall_framework.
# It is important to keep this in case someone has hardcoded installation instructions somewhere and thus this should avoid breaking his program.
# In particular the old behaviour except 1, 2, or 3 numerical arguments whereby
# argument 1 greater or equal to 1 would install FAIR SOFT
# argument 2 greater or equal to 1 would install FAIR ROOT
# argument 3 greater or equal to 1 would install CBM ROOT
# ergo
# ./autobuild_framework dev 1 0 0
# would install FAIR SOFT but not FAIR ROOT nor CBM ROOT.
if [ $1 -gt 0 ];
then
SETUP_FAIRSOFT="1";
echo "FAIR SOFT flaged for install"
fi
if [ ! -z $2 ]; # This combersome and longform if statement exist due to known issues regarding ampersands within bash cases.
then
if [ $2 -gt 0 ];
then
SETUP_FAIRROOT="1";
echo "FAIR ROOT flaged for install"
fi
fi
if [ ! -z $3 ]; # This combersome and longform if statement exist due to known issues regarding ampersands within bash cases.
then
if [ $3 -gt 0 ];
then
SETUP_CBMROOT="1";
echo "CBMROOT flaged for install"
fi
fi
# To prevent the pausing a script with maybe autoinstall_framework called the old way.
ANSWER="NO";
break;;
-h|-help|--help|*)
echo "Autoinstall_framework will install FairSoft, FairSoft, and CbmRoot packages"
echo "If no flags are specified, the program will install all three"
echo "otherwise the user may specify one or more to by calling the corresponding flags"
echo "-h, --help shows this brief help"
echo "-d, --dev Runs with dev"
echo "-o, --old Runs a old version"
echo "-fs, --fairsoft Installation of FairSoft"
echo "-fr, --fairroot Installation of FairRoot"
echo "-cr, --cbmroot Installation of CbmRoot"
echo "-y, --yes Automatically uses new envirnoment configuration post installation"
echo "-n, --no Answers No to automatic environment update"
echo ""
echo "Example case to install only FairRoot and CbmRoot (and not FairSoft)"
echo "./autoinstall_framework.sh -fr -cr"
exit 0;;
esac
done
# My experience tells me that the default could be 2, even if there is only 1 processor, as 1 processing and 1 queued job normally is optimal Will leave it at 1 though.
export NUMOFCPU=`[ -f /proc/cpuinfo ] && grep -i processor /proc/cpuinfo | wc -l || echo 1`
export CBMSRCDIR=`pwd`
#-------------------------------------
echo FSOFTVER: $FSOFTVER
echo FROOTVER: $FROOTVER
# install everything by default
SETUP_FAIRSOFT=1
SETUP_FAIRROOT=1
SETUP_CBMROOT=1
echo number of parameters: $#
# handle parameters, if supplied
if [ $# -eq 1 ]; then
SETUP_FAIRSOFT=$1
SETUP_FAIRROOT=0
SETUP_CBMROOT=0
fi
# handle parameters, if supplied
if [ $# -eq 2 ]; then
SETUP_FAIRSOFT=$1
SETUP_FAIRROOT=$2
SETUP_CBMROOT=0
fi
# handle parameters, if supplied
if [ $# -eq 3 ]; then
SETUP_FAIRSOFT=$1
SETUP_FAIRROOT=$2
SETUP_CBMROOT=$3
fi
echo "Install Fairsoft:" $SETUP_FAIRSOFT
echo "Install Fairroot:" $SETUP_FAIRROOT
echo "Install Cbmroot :" $SETUP_CBMROOT
echo
# exit
#-----------------------------------------------------------------------------------------------------------------
#
## FairSoft
#
......@@ -117,21 +152,21 @@ if [ $SETUP_FAIRSOFT -ge 1 ]; then
# check if sqlite3 is available
if [ -f /usr/include/sqlite3.h ] ; then
echo
echo "Sqlite3 is available"
echo
else
echo
echo
echo "Sqlite3 is available"
echo
else
echo
echo "Sqlite3 is not available"
echo
echo
echo "On Debian, please install as follows:"
echo "sudo apt install libsqlite3-dev"
echo
echo
echo "On OpenSuSE, please install as follows:"
echo "zypper install libsqlite3-0 sqlite3-devel"
echo
echo "afterwards, restart autoinstall_framework.sh"
echo
echo
sleep 5
exit
fi
......@@ -142,9 +177,6 @@ if [ $SETUP_FAIRSOFT -ge 1 ]; then
git tag -l
git checkout -b $FSOFTVER $FSOFTVER
#emacs -nw automatic.conf
#./configure.sh automatic.conf
if [ $ROOTVER -eq 6 ]; then
sed s/build_root6=no/build_root6=yes/ automatic.conf > automatic1_root.conf
else
......@@ -155,12 +187,12 @@ if [ $SETUP_FAIRSOFT -ge 1 ]; then
echo " SIMPATH_INSTALL=$FSOFTINSTALLPATH/installation" >> automatic2_path.conf
sed s/compiler=/compiler=gcc/ automatic2_path.conf > automatic3_gcc.conf
./configure.sh automatic3_gcc.conf
cd $CBMSRCDIR
echo done installing FairSoft
fi
#-----------------------------------------------------------------------------------------------------------------
#
## FairRoot
#
......@@ -178,7 +210,7 @@ if [ $SETUP_FAIRROOT -ge 1 ]; then
echo PATH=$SIMPATH/bin:$PATH
export PATH=$SIMPATH/bin:$PATH
cd ..
git clone https://github.com/FairRootGroup/FairRoot.git fairroot_src_$FROOTVER-fairsoft_${FSOFTVER}_root${ROOTVER}
cd fairroot_src_$FROOTVER-fairsoft_${FSOFTVER}_root${ROOTVER}
......@@ -192,17 +224,18 @@ if [ $SETUP_FAIRROOT -ge 1 ]; then
-DCMAKE_INSTALL_PREFIX=../../fairroot_$FROOTVER-fairsoft_${FSOFTVER}_root${ROOTVER} \
..
nice make install -j$NUMOFCPU
cd $CBMSRCDIR
echo done installing FairRoot
fi
#-----------------------------------------------------------------------------------------------------------------
#
## CbmRoot
#
if [ $SETUP_CBMROOT -ge 1 ]; then
if [ ${SETUP_CBMROOT} -eq "1" ];
then
echo "Setting up Cbmroot ..."
# set SIMPATH
......@@ -222,15 +255,9 @@ if [ $SETUP_CBMROOT -ge 1 ]; then
echo PATH=$SIMPATH/bin:$PATH
export PATH=$SIMPATH/bin:$PATH
cd ..
# if [ -d fieldmaps ]; then
# svn up fieldmaps
# else
# svn co https://subversion.gsi.de/cbmsoft/cbmroot/fieldmaps fieldmaps
# fi
#svn co https://subversion.gsi.de/cbmsoft/cbmroot/trunk cbm_$CBMSRCDIR
cd $CBMSRCDIR
mkdir build
cd build
......@@ -240,19 +267,31 @@ if [ $SETUP_CBMROOT -ge 1 ]; then
..
nice make -j$NUMOFCPU
cd ..
# cd input
# ln -s ../../fieldmaps/* .
# cd ..
echo done installing CbmRoot
echo
echo ". build/config.sh"
echo "export SIMPATH=$SIMPATH"
echo "export FAIRROOTPATH=$FAIRROOTPATH"
echo "done installing CbmRoot"
[ -z $ANSWER ] && (
cat << EOT
Since the system is now installed. Shall I switch to the new environment?
source build/config.sh
Reply Yes or Y for confirmation ????
EOT
) && read ANSWER
if (echo "$ANSWER" | sed -n '/^\(Y\|y\)/!{q10}')
then
echo "A yes detected."
echo "Environmental variables and paths updated"
source build/config.sh;
# export SIMPATH=$SIMPATH;
# export FAIRROOTPATH=$FAIRROOTPATH;
fi
fi
echo "Installation Complete"
#####################################################################################
#####################################################################################
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment