From 8ed15eef9f9b5da1a18f6b7da615b6787f3f1d67 Mon Sep 17 00:00:00 2001 From: QinZuoyan Date: Wed, 20 Jun 2018 15:42:56 +0800 Subject: [PATCH] scripts: fix pack scripts to handle copy failure (#89) --- scripts/pack_client.sh | 11 ++++++----- scripts/pack_common.sh | 14 ++++++++++++++ scripts/pack_server.sh | 32 ++++++++++++++++---------------- scripts/pack_tools.sh | 34 +++++++++++++++++----------------- 4 files changed, 53 insertions(+), 38 deletions(-) diff --git a/scripts/pack_client.sh b/scripts/pack_client.sh index e549b58..45d04ff 100755 --- a/scripts/pack_client.sh +++ b/scripts/pack_client.sh @@ -87,16 +87,17 @@ while [[ $# > 0 ]]; do done mkdir -p ${pack}/lib -cp -v ./DSN_ROOT/lib/libpegasus_client_static.a ${pack}/lib -cp -v ./DSN_ROOT/lib/libpegasus_client_shared.so ${pack}/lib -cp -v `get_boost_lib $custom_boost_lib system` ${pack}/lib +copy_file ./DSN_ROOT/lib/libpegasus_client_static.a ${pack}/lib +copy_file ./DSN_ROOT/lib/libpegasus_client_shared.so ${pack}/lib +copy_file `get_boost_lib $custom_boost_lib system` ${pack}/lib ln -sf `ls ${pack}/lib | grep libboost_system` ${pack}/lib/libboost_system.so -cp -v `get_boost_lib $custom_boost_lib filesystem` ${pack}/lib +copy_file `get_boost_lib $custom_boost_lib filesystem` ${pack}/lib ln -sf `ls ${pack}/lib | grep libboost_filesystem` ${pack}/lib/libboost_filesystem.so + cp -v -r ./src/include ${pack} cd src/sample -make clean +make clean &>/dev/null cd $shell_dir cp -v -r ./src/sample ${pack} diff --git a/scripts/pack_common.sh b/scripts/pack_common.sh index be29e5e..63c6cf7 100755 --- a/scripts/pack_common.sh +++ b/scripts/pack_common.sh @@ -31,3 +31,17 @@ function get_system_lib() echo `ldconfig -p|grep $libname|awk '{print $NF}'` } +#USAGE: copy_file src [src...] dest +function copy_file() +{ + if [ $# -lt 2 ]; then + echo "ERROR: invalid copy file command: cp $*" + exit 1 + fi + cp -v $* + if [ $? -ne 0 ]; then + echo "ERROR: copy file failed: cp $*" + exit 1 + fi +} + diff --git a/scripts/pack_server.sh b/scripts/pack_server.sh index 63531ea..49523d9 100755 --- a/scripts/pack_server.sh +++ b/scripts/pack_server.sh @@ -87,22 +87,22 @@ while [[ $# > 0 ]]; do done mkdir -p ${pack}/bin -cp -v ./DSN_ROOT/bin/pegasus_server/pegasus_server ${pack}/bin -cp -v ./DSN_ROOT/lib/libdsn_meta_server.so ${pack}/bin -cp -v ./DSN_ROOT/lib/libdsn_replica_server.so ${pack}/bin -cp -v ./rdsn/thirdparty/output/lib/libPoco*.so.48 ${pack}/bin -cp -v ./rdsn/thirdparty/output/lib/libtcmalloc.so.4 ${pack}/bin -cp -v ./scripts/sendmail.sh ${pack}/bin -cp -v ./src/server/config.ini ${pack}/bin - -cp -v `get_boost_lib $custom_boost_lib system` ${pack}/bin -cp -v `get_boost_lib $custom_boost_lib filesystem` ${pack}/bin -cp -v `get_stdcpp_lib $custom_gcc` ${pack}/bin -cp -v `get_system_lib server snappy` ${pack}/bin -cp -v `get_system_lib server crypto` ${pack}/bin -cp -v `get_system_lib server ssl` ${pack}/bin -cp -v `get_system_lib server aio` ${pack}/bin -cp -v `get_system_lib server bz2` ${pack}/bin +copy_file ./DSN_ROOT/bin/pegasus_server/pegasus_server ${pack}/bin +copy_file ./DSN_ROOT/lib/libdsn_meta_server.so ${pack}/bin +copy_file ./DSN_ROOT/lib/libdsn_replica_server.so ${pack}/bin +copy_file ./rdsn/thirdparty/output/lib/libPoco*.so.48 ${pack}/bin +copy_file ./rdsn/thirdparty/output/lib/libtcmalloc.so.4 ${pack}/bin +copy_file ./scripts/sendmail.sh ${pack}/bin +copy_file ./src/server/config.ini ${pack}/bin + +copy_file `get_boost_lib $custom_boost_lib system` ${pack}/bin +copy_file `get_boost_lib $custom_boost_lib filesystem` ${pack}/bin +copy_file `get_stdcpp_lib $custom_gcc` ${pack}/bin +copy_file `get_system_lib server snappy` ${pack}/bin +copy_file `get_system_lib server crypto` ${pack}/bin +copy_file `get_system_lib server ssl` ${pack}/bin +copy_file `get_system_lib server aio` ${pack}/bin +copy_file `get_system_lib server bz2` ${pack}/bin chmod +x ${pack}/bin/pegasus_* ${pack}/bin/*.sh chmod -x ${pack}/bin/lib* diff --git a/scripts/pack_tools.sh b/scripts/pack_tools.sh index d678458..38ffd94 100755 --- a/scripts/pack_tools.sh +++ b/scripts/pack_tools.sh @@ -87,7 +87,7 @@ while [[ $# > 0 ]]; do done mkdir -p ${pack} -cp -v ./run.sh ${pack}/ +copy_file ./run.sh ${pack}/ mkdir -p ${pack}/DSN_ROOT/bin cp -v -r ./DSN_ROOT/bin/pegasus_server ${pack}/DSN_ROOT/bin/ @@ -98,33 +98,33 @@ cp -v -r ./DSN_ROOT/bin/pegasus_rproxy ${pack}/DSN_ROOT/bin/ cp -v -r ./DSN_ROOT/bin/pegasus_pressureclient ${pack}/DSN_ROOT/bin/ mkdir -p ${pack}/DSN_ROOT/lib -cp -v -r ./DSN_ROOT/lib/*.so* ${pack}/DSN_ROOT/lib/ -cp -v ./rdsn/thirdparty/output/lib/libPoco*.so.48 ${pack}/DSN_ROOT/lib/ -cp -v ./rdsn/thirdparty/output/lib/libtcmalloc.so.4 ${pack}/DSN_ROOT/lib/ -cp -v `get_boost_lib $custom_boost_lib system` ${pack}/DSN_ROOT/lib/ -cp -v `get_boost_lib $custom_boost_lib filesystem` ${pack}/DSN_ROOT/lib/ -cp -v `get_stdcpp_lib $custom_gcc` ${pack}/DSN_ROOT/lib/ -cp -v `get_system_lib shell snappy` ${pack}/DSN_ROOT/lib/ -cp -v `get_system_lib shell crypto` ${pack}/DSN_ROOT/lib/ -cp -v `get_system_lib shell ssl` ${pack}/DSN_ROOT/lib/ -cp -v `get_system_lib shell aio` ${pack}/DSN_ROOT/lib/ -cp -v `get_system_lib shell bz2` ${pack}/DSN_ROOT/lib/ +copy_file ./DSN_ROOT/lib/*.so* ${pack}/DSN_ROOT/lib/ +copy_file ./rdsn/thirdparty/output/lib/libPoco*.so.48 ${pack}/DSN_ROOT/lib/ +copy_file ./rdsn/thirdparty/output/lib/libtcmalloc.so.4 ${pack}/DSN_ROOT/lib/ +copy_file `get_boost_lib $custom_boost_lib system` ${pack}/DSN_ROOT/lib/ +copy_file `get_boost_lib $custom_boost_lib filesystem` ${pack}/DSN_ROOT/lib/ +copy_file `get_stdcpp_lib $custom_gcc` ${pack}/DSN_ROOT/lib/ +copy_file `get_system_lib shell snappy` ${pack}/DSN_ROOT/lib/ +copy_file `get_system_lib shell crypto` ${pack}/DSN_ROOT/lib/ +copy_file `get_system_lib shell ssl` ${pack}/DSN_ROOT/lib/ +copy_file `get_system_lib shell aio` ${pack}/DSN_ROOT/lib/ +copy_file `get_system_lib shell bz2` ${pack}/DSN_ROOT/lib/ chmod -x ${pack}/DSN_ROOT/lib/* mkdir -p ${pack}/scripts -cp -v ./scripts/* ${pack}/scripts/ +copy_file ./scripts/* ${pack}/scripts/ chmod +x ${pack}/scripts/*.sh mkdir -p ${pack}/src/server -cp -v ./src/server/*.ini ${pack}/src/server/ +copy_file ./src/server/*.ini ${pack}/src/server/ mkdir -p ${pack}/src/shell -cp -v ./src/shell/*.ini ${pack}/src/shell/ +copy_file ./src/shell/*.ini ${pack}/src/shell/ mkdir -p ${pack}/src/test/kill_test -cp -v ./src/test/kill_test/*.ini ${pack}/src/test/kill_test/ +copy_file ./src/test/kill_test/*.ini ${pack}/src/test/kill_test/ -cp -v ./src/*.ini ${pack}/src/ +copy_file ./src/*.ini ${pack}/src/ echo "Pegasus Tools $version ($commit_id) $platform $build_type" >${pack}/VERSION -- GitLab