#!/bin/echo Usage: .
#-----------------------------------------------------------------------------
# lofarinit.sh: Define the LOFAR environment for Bourne-like shells
#-----------------------------------------------------------------------------
#
# Copyright (C) 2005
# ASTRON (Netherlands Institute for Radio Astronomy)
# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands
#
# This file is part of the LOFAR software suite.
# The LOFAR software suite is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as published
# by the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# The LOFAR software suite is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with the LOFAR software suite. If not, see <http://www.gnu.org/licenses/>.
#
# $Id$

# Define root here.
# This is a placeholder, so do NOT change the line.
# The actual value is filled in by make install (see Makefile.am).
lfr_root=@prefix@
lfr_libdir=@libdir@

# CMake does not define libdir, so we need to do things differently
if test "$lfr_libdir" = ""; then
  lfr_libdir=@CMAKE_INSTALL_PREFIX@/@LOFAR_LIBDIR@
fi

# Use only the basename of the the lib
lfr_libdir=`basename $lfr_libdir`

# Get directory for Python extensions
lfr_pylibdir=`python -c "from distutils.sysconfig import get_python_lib; print get_python_lib(plat_specific=True, prefix='')"`

# First strip the current LOFARROOT from PATH, LD_LIBRARY_PATH, and PYTHONPATH.
# Take care that a possible . is preceeded by a backslash (for the later sed).
if [ "$LOFARROOT" != "" ]; then
    lfr_path=`echo $LOFARROOT | sed -e 's/\./\\\./g'`
    for lfr_bin in bin sbin
    do
      lfr_bin="$lfr_path/$lfr_bin"
      PATH=`echo $PATH | sed -e "s%:$lfr_bin:%:%g" -e "s%^$lfr_bin:%%"  -e "s%:$lfr_bin$%%" -e "s%^$lfr_bin$%%"`
      export PATH
    done
    lfr_lib="$lfr_path/$lfr_libdir"
    LD_LIBRARY_PATH=`echo $LD_LIBRARY_PATH | sed -e "s%:$lfr_lib:%:%g" -e "s%^$lfr_lib:%%"  -e "s%:$lfr_lib$%%" -e "s%^$lfr_lib$%%"`
    export LD_LIBRARY_PATH
    lfr_pyt="$lfr_path/$lfr_pylibdir"
    PYTHONPATH=`echo $PYTHONPATH | sed -e "s%:$lfr_pyt:%:%g" -e "s%^$lfr_pyt:%%"  -e "s%:$lfr_pyt$%%" -e "s%^$lfr_pyt$%%"`
    export PYTHONPATH
fi

# Now define the new LOFARROOT (if possible)
# Do it only if the bin directory exists.
lfr_nroot=`cd $lfr_root > /dev/null; pwd`      # make path absolute
if [ "$lfr_nroot" = ""  -o  ! -d $lfr_nroot/bin ]; then
    echo "LOFAR root directory $lfr_nroot/bin does not exist; keeping old LOFARROOT $LOFARROOT"
else
    LOFARROOT=$lfr_nroot
    export LOFARROOT

    # Also strip root from the current paths (in case it is contained).
    lfr_path=`echo $LOFARROOT | sed -e 's/\./\\\./g'`
    for lfr_bin in bin sbin
    do
      lfr_bin="$lfr_path/$lfr_bin"
      PATH=`echo $PATH | sed -e "s%:$lfr_bin:%:%g" -e "s%^$lfr_bin:%%"  -e "s%:$lfr_bin$%%" -e "s%^$lfr_bin$%%"`
      export PATH
    done
    lfr_lib="$lfr_path/$lfr_libdir"
    LD_LIBRARY_PATH=`echo $LD_LIBRARY_PATH | sed -e "s%:$lfr_lib:%:%g" -e "s%^$lfr_lib:%%"  -e "s%:$lfr_lib$%%" -e "s%^$lfr_lib$%%"`
    export LD_LIBRARY_PATH
    lfr_pyt="$lfr_path/$lfr_pylibdir"
    PYTHONPATH=`echo $PYTHONPATH | sed -e "s%:$lfr_pyt:%:%g" -e "s%^$lfr_pyt:%%"  -e "s%:$lfr_pyt$%%" -e "s%^$lfr_pyt$%%"`
    export PYTHONPATH
fi

# Add to the paths if the bin directory exists.
if [ "$LOFARROOT" = ""  -o  ! -d $LOFARROOT/bin ]; then
    echo "No LOFARROOT defined"
else
    # Add the path to the standard paths.
    if [ "$PATH" = "" ]; then
        PATH=$LOFARROOT/bin:$LOFARROOT/sbin
    else
        PATH=$LOFARROOT/bin:$LOFARROOT/sbin:$PATH
    fi
    export PATH
    if [ "$LD_LIBRARY_PATH" = "" ]; then
        LD_LIBRARY_PATH=$LOFARROOT/$lfr_libdir
    else
        LD_LIBRARY_PATH=$LOFARROOT/$lfr_libdir:$LD_LIBRARY_PATH
    fi
    export LD_LIBRARY_PATH
    lfr_pyt="$LOFARROOT/$lfr_pylibdir"
    if [ "$PYTHONPATH" = "" ]; then
        PYTHONPATH=$lfr_pyt
    else
        PYTHONPATH=$lfr_pyt:$PYTHONPATH
    fi
    export PYTHONPATH
fi

# Now define the new LOFARDATAROOT (if possible).
# First try as data directory of the LOFAR install directory.
lfr_path=`echo $LOFARROOT | sed -e 's%/installed.*%%'`
if [ "$lfr_path" != ""  -a  -d $lfr_path/data ]; then
    LOFARDATAROOT=$lfr_path/data
    export LOFARDATAROOT
else
    # Try it as the LOFARDATA directory (part of the source tree).
    lfr_path=`echo $LOFARROOT | sed -e 's%/LOFAR/.*%/LOFAR%'`
    if [ "$lfr_path" != ""  -a  -d ${lfr_path}DATA ]; then
        LOFARDATAROOT=${lfr_path}DATA
        export LOFARDATAROOT
    else
        LOFARDATAROOT=/opt/lofar/data
        export LOFARDATAROOT
    fi
fi

# Clean up
unset lfr_root lfr_nroot lfr_bin lfr_libdir lfr_lib lfr_pylibdir lfr_pyt lfr_path
