#!/bin/bash
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
# 
#   http://www.apache.org/licenses/LICENSE-2.0
# 
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
#

merge_paths() {
    # Merge paths, remove duplicates (keep first instance)
    path=$(echo $* | sed 's/:/ /'g) # Split with spaces.
    newpath=""
    for d in $path; do		# Remove duplicates
	{ echo $newpath | grep -q "\(:\|^\)$d\(:\|$\)"; } || newpath="$newpath:$d"
    done
    echo $newpath | sed 's/^://' # Remove leading :
}

PROTON_HOME=@CMAKE_SOURCE_DIR@
PROTON_BUILD=@CMAKE_BINARY_DIR@

PYTHON_BINDING=$PROTON_BUILD/python

# Python
COMMON_PYPATH=$PROTON_HOME/tests/python:$PROTON_HOME/python:$PROTON_HOME/tools/python
export PYTHONPATH=$COMMON_PYPATH:$PYTHON_BINDING

# Ruby
RUBY_BINDING=$PROTON_BUILD/ruby
RUBY_SRC=$PROTON_HOME/ruby
export RUBYLIB=$RUBY_BINDING:$RUBY_SRC/lib:$RUBY_SRC/tests:$RUBY_SRC/spec

# Go
export GOPATH="$PROTON_BUILD/go"
# Help Go compiler find libraries and include files.
export C_INCLUDE_PATH="$(merge_paths $PROTON_HOME/include $PROTON_BUILD/include $C_INCLUDE_PATH)"
export LIBRARY_PATH="$(merge_paths $PROTON_BUILD $LIBRARY_PATH)"
export LD_LIBRARY_PATH="$(merge_paths $PROTON_BUILD $LD_LIBRARY_PATH)"

# Test applications
export PATH="$(merge_paths $PATH $PROTON_BUILD/c/tools $PROTON_HOME/tests/python)"

# Can the test harness use valgrind?
if [[ -x "$(type -p valgrind)" && "@ENABLE_VALGRIND@" == "ON" ]] ; then
    export VALGRIND=$(type -p valgrind)
    export VALGRIND_ARGS="@VALGRIND_OPTIONS@"
fi

# Can the test harness use saslpasswd2?
if [[ -x "$(type -p saslpasswd2)" ]] ; then
    export SASLPASSWD=$(type -p saslpasswd2)
fi

# Location of interop test files.
export PN_INTEROP_DIR=$PROTON_HOME/tests/interop
