#!/usr/bin/bash

conda_path = $(command -v conda)
echo 'conda path:' $conda_path


if   [[ ! -z $conda_path  ]]
then
    echo 'non empty?'
elif [[ -f $HOME/conda.sh  ]]
then 
    source $HOME/conda.sh 
    echo 'BUILD WITH CONDA: source conda.sh    : ' $HOME/conda.sh 
else
    echo 'BUILD WITH CONDA: Do not know how to access CONDA'
    return 170 
fi 

OSTAP_CONDA_ENV=${1:-test-env}

conda activate $OSTAP_CONDA_ENV
conda_code=$?

if [[ $conda_code -ne 0 ]] 
then
    echo 'BUILD WITH CONDA: Failure to activate CONDA environment ' $OSTAP_CONDA_ENV
    echo 'BUILD WITH CONDA: Valid CONDA  environments are:'
    conda info --envs
    return 180 
fi 

if [[ -d /teo/user/ibelyaev/ostap ]]
then 
    THE_SRC=/teo/user/ibelyaev/ostap
elif [[ -d $HOME/ostap ]]
then 
    THE_SRC=$HOME/ostap
else 
    THE_SRC=$PWD
fi

OSTAP_SOURCE=${2:-$THE_SRC}

if [[ $OSTAP_SOURCE                      &&
      -d $OSTAP_SOURCE                   &&
      -d $OSTAP_SOURCE/ostap             &&
      -d $OSTAP_SOURCE/source            &&
      -d $OSTAP_SOURCE/scripts           &&
      -d $OSTAP_SOURCE/examples          &&
      -d $OSTAP_SOURCE/data              &&
      -f $OSTAP_SOURCE/CMakeLists.txt    &&
      -f $OSTAP_SOURCE/.aux/.build-ostap ]]
then
    true  
else
    echo 'BUILD_WITH_CONDA: No valid SOURCE directory is found!' $OSTAP_SOURCE 
    return 190 
fi 

OSTAP_BUILD=${3:-$OSTAP_SOURCE/build}

if   [[ $OSTAP_BUILD && -d $OSTAP_BUILD && -w $OSTAP_BUILD ]]
then
    true
elif [[ -w $OSTAP_SOURCE ]]
then 
    mkdir $OSTAP_SOURCE/build
    OSTAP_BUILD=$OSTAP_SOURCE/build  
    echo 'BUILD WITH CONDA: Build directory is created' $OSTAP_BUILD
else
    OSTAP_BUILD=`mktemp -d -t ostap-$(date '+%Y-%b-%d')-OSTAP-BUILD-DIR-XXXXXX`
    echo 'BUILD WITH CONDA: Build directory is created' $OSTAP_BUILD
fi

if [[ -f $OSTAP_BUILD/.build-ostap ]]
then
    echo 'BUILD WITH CONDA: use existing .build-ostap ' $OSTAP_SOURCE/.build-ostap
else 
    cp $OSTAP_SOURCE/.aux/.build-ostap $OSTAP_BUILD/.build-ostap
    echo 'BUILD WITH CONDA: copy .build-ostap from    ' $OSTAP_SOURCE/.aux/.build-ostap
fi

OSTAP_INSTALL=${4:-$OSTAP_BUILD/INSTALL/CONDA-$OSTAP_CONDA_ENV}

echo 'BUILD WITH CONDA: OSTAP_CONDA_ENV    : ' $OSTAP_CONDA_ENV
echo 'BUILD WITH CONDA: OSTAP_SOURCE       : ' $OSTAP_SOURCE
echo 'BUILD WITH CONDA: OSTAP_BUILD        : ' $OSTAP_BUILD
echo 'BUILD WITH CONDA: OSTAP_INSTALL      : ' $OSTAP_INSTALL

source $OSTAP_BUILD/.build-ostap $OSTAP_SOURCE $OSTAP_BUILD $OSTAP_INSTALL

result=$?

echo ''
echo 'BUILD WITH CONDA: OSTAP_CONDA_ENV    : ' $OSTAP_CONDA_ENV

if [[ $result -eq 0 ]]
then
    echo 'BUILD WITH CONDA: RESULT             : ' SUCCESS 
else 
    echo 'BUILD WITH CONDA: RESULT             : ' FAILURE $result 
fi

return $result
