#!/bin/bash # Copyright 2017 Google Inc. # # Licensed 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. # Import prepend_path function. dir="$(dirname "${BASH_SOURCE[0]}")" # shellcheck source=tools/shell_functions.inc if ! source "${dir}/tools/shell_functions.inc"; then echo "failed to load tools/shell_functions.inc" return 1 fi VTTOP=$(pwd) export VTTOP VTROOT="${VTROOT:-${VTTOP/\/src\/vitess.io\/vitess/}}" export VTROOT # VTTOP sanity check if [[ "$VTTOP" == "${VTTOP/\/src\/vitess.io\/vitess/}" ]]; then echo "WARNING: VTTOP($VTTOP) does not contain src/vitess.io/vitess" fi export GOTOP=$VTTOP/go export PYTOP=$VTTOP/py export VTDATAROOT="${VTDATAROOT:-${VTROOT}/vtdataroot}" mkdir -p "$VTDATAROOT" export VTPORTSTART=15000 # Add all site-packages or dist-packages directories below $VTROOT/dist to $PYTHONPATH. while IFS= read -r -d '' pypath; do PYTHONPATH=$(prepend_path "$PYTHONPATH" "$pypath") # Note that the escaped ( ) around the -or expression are important. # Otherwise, the -print0 would match *all* files. done < <(find "$VTROOT/dist" \( -name site-packages -or -name dist-packages \) -print0) PYTHONPATH=$(prepend_path "$PYTHONPATH" "$VTROOT/py-vtdb") PYTHONPATH=$(prepend_path "$PYTHONPATH" "$VTROOT/dist/selenium") PYTHONPATH=$(prepend_path "$PYTHONPATH" "$VTTOP/test") PYTHONPATH=$(prepend_path "$PYTHONPATH" "$VTTOP/test/cluster/sandbox") export PYTHONPATH # Ensure bootstrap.sh uses python2 on systems which default to python3. command -v python2 >/dev/null && PYTHON=python2 || PYTHON=python export PYTHON command -v pip2 >/dev/null && PIP=pip2 || PIP=pip export PIP command -v virtualenv2 >/dev/null && VIRTUALENV=virtualenv2 || VIRTUALENV=virtualenv export VIRTUALENV # Add the current GOBIN if [ "$GOBIN" ]; then PATH=$(prepend_path "$PATH" "$GOBIN") fi # Many tests rely on "go install" and assume GOBIN is really $VTROOT/bin. # Make sure these take precedence. GOBIN=$VTROOT/bin export GOBIN PATH=$(prepend_path "$PATH" "$GOBIN") # Add chromedriver to path for Selenium tests. PATH=$(prepend_path "$PATH" "$VTROOT/dist/chromedriver") # Node path. PATH=$(prepend_path "$PATH" "$VTROOT/dist/node/bin") export PATH # GOROOT sanity go_bin=$(which go) go_env=$(go env | grep GOROOT | cut -f 2 -d\") if [[ "$go_bin" != "" && "$go_bin" != "$go_env/bin/go" ]]; then echo "WARNING: \$GOROOT may not be compatible with the used go binary" echo "Please make sure 'go' comes from \$GOROOT/bin" echo "go_env: $go_env" echo "go_bin: $go_bin" fi # mysql install location. Please set based on your environment. # Build will not work if this is incorrect. if [[ "$VT_MYSQL_ROOT" == "" ]]; then if [[ "$(which mysql)" == "" ]]; then echo "WARNING: VT_MYSQL_ROOT unset because mysql not found. Did you install a client package?" else VT_MYSQL_ROOT=$(dirname "$(dirname "$(which mysql)")") export VT_MYSQL_ROOT fi fi # restore MYSQL_FLAVOR, saved by bootstrap.sh if [ -r "$VTROOT/dist/MYSQL_FLAVOR" ]; then MYSQL_FLAVOR=$(cat "$VTROOT/dist/MYSQL_FLAVOR") export MYSQL_FLAVOR fi # mysql cgo library config if [ -z "$MYSQL_FLAVOR" ]; then export MYSQL_FLAVOR=MariaDB fi PKG_CONFIG_PATH=$(prepend_path "$PKG_CONFIG_PATH" "$VTROOT/lib") export PKG_CONFIG_PATH GOPATH=$(prepend_path "$GOPATH" "$VTROOT") export GOPATH # Useful aliases. Remove if inconvenient. alias gt='cd $GOTOP' alias pt='cd $PYTOP' alias vt='cd $VTTOP'