diff --git a/tools/deploy/copy.sh b/tools/deploy/copy.sh index 58710ebcea..70701f9050 100755 --- a/tools/deploy/copy.sh +++ b/tools/deploy/copy.sh @@ -1,12 +1,17 @@ #!/bin/bash -x +SOURCE_DIR=$(readlink -f "$(dirname ${BASH_SOURCE[0]})/../..") + if [ $# -lt 1 ] then - echo "Usage ./copy.sh [oceanbase_dev_dir]" - BUILD_DIR=$(find $PWD/../../ -maxdepth 1 -name 'build_*' -type d | grep -v 'build_ccls' | head -1) - SOURCE_DIR=$PWD/../../ + BUILD_DIR=$(find $SOURCE_DIR -maxdepth 1 -name 'build_*' -type d | grep -v 'build_ccls' | sort | head -1) + if [[ "$BUILD_DIR" == "" ]] + then + echo "Usage ./copy.sh [oceanbase_dev_dir]" + else + echo "Choose $BUILD_DIR as build directory of oceanbase." + fi else BUILD_DIR=$1 - SOURCE_DIR=$PWD/../../ fi BIN_DIR=`pwd`/bin${VER} @@ -15,6 +20,30 @@ TOOL_DIR=`pwd`/tools ETC_DIR=`pwd`/etc DEBUG_DIR=`pwd`/debug ADMIN_DIR=`pwd`/admin + +function do_install { + quiet=false + if [ $# -eq 3 ] && [[ "$3" == "true" ]] + then + quiet=true + fi + [[ "$quiet" == "false" ]] && echo -n "Installing $1 " + sources=$(ls $1 2>/dev/null) + if [[ "$sources" == "" ]] + then + [[ "$quiet" == "false" ]] && echo -e "\033[0;31mFAIL\033[0m\nNo such file: $1" + return 1 + fi + target=$2 + err_msg=$(libtool --mode=install cp $sources $target 2>&1 >/dev/null) + if [ $? -eq 0 ] + then + [[ "$quiet" == "false" ]] && echo -e "\033[0;32mOK\033[0m" + else + [[ "$quiet" == "false" ]] && echo -e "\033[0;31mFAIL\033[0m\n$err_msg" + fi +} + if [ $# -lt 2 ] then mkdir -p $BIN_DIR @@ -24,25 +53,24 @@ then mkdir -p $DEBUG_DIR mkdir -p $ADMIN_DIR if [ -f $SOURCE_DIR/deps/oblib/src/lib/compress/liblz4_1.0.la ]; then - libtool --mode=install cp $SOURCE_DIR/deps/oblib/src/lib/compress/liblz4_1.0.la $LIB_DIR - libtool --mode=install cp $SOURCE_DIR/deps/oblib/src/lib/compress/libnone.la $LIB_DIR - libtool --mode=install cp $SOURCE_DIR/deps/oblib/src/lib/compress/libsnappy_1.0.la $LIB_DIR - libtool --mode=install cp $SOURCE_DIR/deps/oblib/src/lib/compress/libzlib_1.0.la $LIB_DIR + do_install $SOURCE_DIR/deps/oblib/src/lib/compress/liblz4_1.0.la $LIB_DIR + do_install $SOURCE_DIR/deps/oblib/src/lib/compress/libnone.la $LIB_DIR + do_install $SOURCE_DIR/deps/oblib/src/lib/compress/libsnappy_1.0.la $LIB_DIR + do_install $SOURCE_DIR/deps/oblib/src/lib/compress/libzlib_1.0.la $LIB_DIR fi - libtool --mode=install cp $SOURCE_DIR/rpm/.dep_create/lib/libstdc++.so.6 $LIB_DIR - libtool --mode=install cp $SOURCE_DIR/deps/oblib/src/lib/profile/obperf $TOOL_DIR/ - libtool --mode=install cp $BUILD_DIR/src/observer/observer $BIN_DIR/observer - libtool --mode=install cp $SOURCE_DIR/src/share/inner_table/sys_package/*.sql $ADMIN_DIR + do_install $BUILD_DIR/src/observer/observer $BIN_DIR/observer + do_install "$SOURCE_DIR/src/share/inner_table/sys_package/*.sql" $ADMIN_DIR + do_install $SOURCE_DIR/deps/3rd/usr/local/oceanbase/devtools/bin/llvm-symbolizer $TOOL_DIR/ + do_install $SOURCE_DIR/rpm/.dep_create/lib/libstdc++.so.6 $LIB_DIR true + do_install $SOURCE_DIR/deps/oblib/src/lib/profile/obperf $TOOL_DIR/ true - libtool --mode=install cp ./usr/lib/oracle/12.2/client64/lib/libclntsh.so.12.1 $LIB_DIR - libtool --mode=install cp ./usr/lib/oracle/12.2/client64/lib/libclntsh.so.12.1 $LIB_DIR/libclntsh.so - libtool --mode=install cp ./usr/lib/oracle/12.2/client64/lib/libclntshcore.so.12.1 $LIB_DIR - libtool --mode=install cp ./usr/lib/oracle/12.2/client64/lib/libnnz12.so $LIB_DIR - libtool --mode=install cp ./usr/lib/oracle/12.2/client64/lib/libons.so $LIB_DIR - libtool --mode=install cp ./usr/lib/oracle/12.2/client64/lib/libociei.so $LIB_DIR - libtool --mode=install cp ./usr/lib/oracle/12.2/client64/lib/libmql1.so $LIB_DIR - libtool --mode=install cp ./usr/lib/oracle/12.2/client64/lib/libipc1.so $LIB_DIR - - libtool --mode=install cp $SOURCE_DIR/deps/3rd/usr/local/oceanbase/devtools/bin/llvm-symbolizer $TOOL_DIR/ + do_install ./usr/lib/oracle/12.2/client64/lib/libclntsh.so.12.1 $LIB_DIR true + do_install ./usr/lib/oracle/12.2/client64/lib/libclntsh.so.12.1 $LIB_DIR/libclntsh.so true + do_install ./usr/lib/oracle/12.2/client64/lib/libclntshcore.so.12.1 $LIB_DIR true + do_install ./usr/lib/oracle/12.2/client64/lib/libnnz12.so $LIB_DIR true + do_install ./usr/lib/oracle/12.2/client64/lib/libons.so $LIB_DIR true + do_install ./usr/lib/oracle/12.2/client64/lib/libociei.so $LIB_DIR true + do_install ./usr/lib/oracle/12.2/client64/lib/libmql1.so $LIB_DIR true + do_install ./usr/lib/oracle/12.2/client64/lib/libipc1.so $LIB_DIR true fi diff --git a/tools/deploy/obd.sh b/tools/deploy/obd.sh index 1dd0cb9959..937a629578 100755 --- a/tools/deploy/obd.sh +++ b/tools/deploy/obd.sh @@ -34,7 +34,7 @@ function obd_exec { } alias obd="obd_exec" -function variables_parpare { +function variables_prepare { if [[ "$(readlink -f "$BASE_DIR"/..)" == "$OB_FLOW_WORK_DIR" ]] then path=$(readlink -f "$BASE_DIR") @@ -74,7 +74,7 @@ function variables_parpare { function copy_sh { if [[ -f copy.sh ]] then - sh copy.sh + sh copy.sh $BUILD_PATH else echo 'can not find copy.sh' fi @@ -559,7 +559,7 @@ Usage: $entrance [options] Available commands: -prepare [-p DATA_PATH -h HOST] Prepare for deployment. +prepare [-b BUILD_PATH -p DATA_PATH -h HOST] Prepare for deployment. deploy -c YAML_CONF [-n DEPLOY_NAME] Deploy a cluster by a deploy yaml file. Default deploy name will be the name of yaml file. redeploy [-c YAML_CONF -n DEPLOY_NAME] Redeploy cluster. reinstall [-n DEPLOY_NAME] Reinstall cluster. (Change bin file, sync libs and restart) @@ -593,20 +593,21 @@ Options: -n DEPLOY_NAME, --deploy-name DEPLOY_NAME The name of the deployment. -v VERBOSE Activate verbose output. +-b BUILD_PATH, --build-path BUILD_PATH The build path of oceanbase. If not specified, it will be chosen in alphabetical order. -p DATA_PATH, --data-path DATA_PATH The data path for server deployment, it can be changed in the yaml file. --ip IPADDRESS The ipaddress for server deployment, it can be changed in the yaml file. --port PORT_BEGIN The port starting point. All the ports can be changed in the yaml file. --with-local-obproxy Use local obproxy. --skip-copy Skip copy.sh. --cp Exec copy.sh. ---reboot Redeploy cluster before mysqltest +--reboot Redeploy cluster before mysqltest. """ } function main() { entrance=${OBD_SH_ENTRANCE:-obd.sh} - variables_parpare + variables_prepare command="$1" shift extra_args="" @@ -625,6 +626,7 @@ function main() { fi ;; -n | --deploy-name ) DEPLOY_NAME="$2"; shift 2 ;; + -b | --build-path ) BUILD_PATH="$2"; shift 2 ;; -p | --data-path ) DATA_PATH="$2"; shift 2 ;; -N ) NO_CONFIRM="1"; shift ;; --ip ) IPADDRESS="$2"; shift 2 ;; @@ -645,6 +647,7 @@ function main() { YAML_CONF=$(absolute_path ${YAML_CONF}) DATA_PATH=$(absolute_path ${DATA_PATH}) + BUILD_PATH=$(absolute_path ${BUILD_PATH}) OBSERVER_PATH=$(absolute_path ${OBSERVER_PATH}) if [[ "$MINI" == "1" && "$DISABLE_REBOOT" != "1" ]]