##// END OF EJS Templates
Add restart to nginx container
Add restart to nginx container

File last commit:

r9:2e29893b10f5
r22:1c8c96a4f254 master
Show More
installMadrigal
299 lines | 5.8 KiB | text/plain | TextLexer
#!/bin/sh
#
# This script installs the entire Madrigal database.
# Use -c to skip conversion from Madrigal 2->3 files
#
# See the latest documentation at http://madrigal.haystack.mit.edu/madrigal/admin.html
# for the latest installation instructions
#
# $Id: installMadrigal 7342 2021-03-29 13:53:30Z brideout $
function timer()
{
if [[ $# -eq 0 ]]; then
echo $(date '+%s')
else
local stime=$1
etime=$(date '+%s')
if [[ -z "$stime" ]]; then stime=$etime; fi
dt=$((etime - stime))
ds=$((dt % 60))
dm=$(((dt / 60) % 60))
dh=$((dt / 3600))
printf '%d:%02d:%02d' $dh $dm $ds
fi
}
tmr=$(timer)
# verify we are indeed in the right pwd
if [ ! -f installMadrigal ]
then
echo "You must run this script from the MADROOT directory"
exit -1
fi
# if MADROOT is set, be sure it matches PWD
if [ "$MADROOT" != "" ]
then
if [ $MADROOT != $PWD ]
then
echo "Environmental variable MADROOT = $MADROOT does not match PWD = $PWD"
exit -1
fi
else
export MADROOT=$PWD
fi
# test that h5repack installed
path_to_executable=$(which h5repack)
if [ -x "$path_to_executable" ] ; then
echo "h5repack installed"
else
echo "h5repack needs to be installed"
exit -1
fi
# check whether test experiments have been installed
if [[ (! -f experiments/1998/mlh/20jan98/mil980120g.002 ) && ( ! -f experiments/1998/mlh/20jan98/mil980120g.002.hdf5) && ( ! -f experiments/1998/mlh/20jan98/mlh980120g.002.hdf5) ]]
then
echo "The standard test data must be installed before installing Madrigal"
echo "See install instructions at http://madrigal.haystack.mit.edu/madrigal/ad_install.html"
echo "Standard test experiments can be found at http://madrigal.haystack.mit.edu/madrigal/madDownload.html"
exit -1
fi
# check if should convert to Madrigal3
convert=1
if [ $# -gt 0 ]
then
for arg in $@
do
if [ $arg = "-c" ]
then
convert=0
fi
done
fi
echo "Testing that all required python modules are already installed in the default python 3"
$MADROOT/bin/python testRequirements.py
if [ $? -ne 0 ]
then
exit -1
fi
echo "Installing Madrigal in $MADROOT"
# verify correctness of madrigal.cfg
if [ ! -f madrigal.cfg ]
then
echo
echo "madrigal.cfg must be created first by copying madrigal.cfg.template and editing as needed"
exit -1
else
$MADROOT/bin/python checkConfig.py
if [ $? -ne 0 ]
then
exit -1
fi
fi
# Set all file permissions to owner and group write
echo "********** setPermissions **********"
$MADROOT/bin/python setPermissions.py
if [ $? -ne 0 ]
then
exit -1
fi
echo "********** configureSource **********"
$MADROOT/bin/python configureSource.py
if [ $? -ne 0 ]
then
exit -1
fi
# Compile the Libraries and Programs
# ----------------------------------
cd source
echo "********** rebuilding dist with autotools **********"
aclocal
if [ $? -ne 0 ]
then
exit -1
fi
autoconf
if [ $? -ne 0 ]
then
exit -1
fi
libtoolize
if [ $? -ne 0 ]
then
exit -1
fi
autoheader
if [ $? -ne 0 ]
then
exit -1
fi
automake --add-missing
if [ $? -ne 0 ]
then
exit -1
fi
echo "********** ./configure **********"
./configure --prefix=$MADROOT FFLAGS=-std=legacy
if [ $? -ne 0 ]
then
exit -1
fi
echo "********** make clean **********"
make clean
if [ $? -ne 0 ]
then
exit -1
fi
echo "********** make **********"
make
if [ $? -ne 0 ]
then
exit -1
fi
echo "********** make check **********"
make check
if [ $? -ne 0 ]
then
exit -1
fi
echo "********** make install **********"
make install
if [ $? -ne 0 ]
then
exit -1
fi
cd ..
echo "********** configureScripts **********"
$MADROOT/bin/python configureScripts.py
if [ $? -ne 0 ]
then
exit -1
fi
echo "********** Installing bootstrap calendar **********"
cd source/madpy/djangoMad/bootstrap_calendar/dist
rm -rf django-bootstrap-calendar-0.1.0
tar -xzf django-bootstrap-calendar-0.1.0.tar.gz
cd django-bootstrap-calendar-0.1.0
$MADROOT/bin/python setup.py install
if [ $? -ne 0 ]
then
exit -1
fi
cd ../../../../../..
echo "********** Installing madrigal python library **********"
cd source/madpy
rm -f -r build
$MADROOT/bin/python setup.py install
if [ $? -ne 0 ]
then
exit -1
fi
rm -f -r build
echo "********** Installing madrigalWeb python library **********"
cd madrigalWeb
rm -f -r build
$MADROOT/bin/python setup.py install
if [ $? -ne 0 ]
then
exit -1
fi
cd ../../..
echo "********** Verifying this site is set to at least 3 in siteTab.txt **********"
$MADROOT/bin/python source/madpy/scripts/bin/checkSiteIs3.py
if [ $? -ne 0 ]
then
exit -1
fi
# Install Experiments
# -------------------
echo "********** configureExperiments **********"
chmod +x configureExperiments
./configureExperiments
if [ $? -ne 0 ]
then
exit -1
fi
# Update metadata
# -------------------
echo "********** Updating metadata tables **********"
chmod +x -R bin/
bin/updateMaster
if [ $? -ne 0 ]
then
exit -1
fi
echo "********** The following script will create all the summary and hdf5 files needed **********"
bin/rebuildInstParmTab.py
if [ $? -ne 0 ]
then
exit -1
fi
if [ $convert = 1 ]
then
bin/convertToMadrigal3.py --numCPU=2
if [ $? -ne 0 ]
then
exit -1
fi
fi
# Test the Libraries and Programs
echo "********** Testing installation **********"
# ------------------------------
bin/testGeolib
if [ $? -ne 0 ]
then
exit -1
fi
echo "--diff testGeolib.out source/madf/geolib/testGeolib.out.rock"
diff testGeolib.out source/madf/geolib/testGeolib.out.rock
echo "running test on Madrigal web services..."
bin/python source/madpy/madrigalWeb/madrigalWeb/examples/testMadrigalWebServices.py
echo "checking whether the web server needs extra configuration"
bin/python source/madpy/scripts/bin/testWebConfig.py
# Install complete
# ---------------------
echo ""
printf 'Elapsed time: %s\n' $(timer $tmr)
echo "Madrigal installation complete"